Latest

启动数据自愈系统BUG分析5

数据自愈系统严重 BUG — 第四轮因果链分析 分析日期: 2026-02-15 涉及文件: orchestrator.py, repair_executor.py, test_basic.py 背景: 第三轮重写修复了前两轮的 7 大缺陷后,当前代码仍存在 4 个 BUG 概览 第三轮重写引入了 Diagnosis 数据类、make_interval SQL 修复和新鲜度检查,成功修复了之前的致命问题。但代码审查发现,当前版本仍存在 4 个 BUG,其中 BUG #1 和 #2 在特定场景下会联合导致自愈系统静默失败(无报错但不修复任何数据)。 BUG #1(严重 🔴):_diagnose() 对「不连续 + 不新鲜

By SHI XIAOLONG

启动数据自愈系统BUG分析4

数据自愈系统严重 BUG — 第三轮因果链分析 分析日期: 2026-02-15 涉及文件: src/utils/data_healing/orchestrator.py, repair_executor.py, test_basic.py 背景: 第二轮重写修复了原始 3 大缺陷后,新代码引入了 4 个新 BUG 概览 orchestrator.py 头部注释声明"修复原有三大致命缺陷",但重写后的代码引入了新的严重问题。其中 BUG #1 为致命级别,会导致 _load_zscore_history() 的 SQL 查询在运行时直接失败,使自愈系统完全无法工作。 ⚠️ CAUTION: BUG #1 导致

By SHI XIAOLONG

启动数据自愈系统BUG分析3

数据自愈系统严重 BUG — 完整因果链分析 分析日期: 2026-02-15 涉及文件: src/utils/data_healing/orchestrator.py, continuity_checker.py, config.py, src/services/realtime_kline_service_base.py 概览 在 orchestrator.py、continuity_checker.py、config.py 以及调用方 realtime_kline_service_base.py 中发现了 3 个严重 BUG,它们协同作用,使得数据自愈系统在启动时基本无法正确工作。 BUG #1(致命):时间间隔配置不匹配 — 连续性检查完全失效

By SHI XIAOLONG

启动数据自愈系统BUG分析2

数据自愈系统严重BUG分析报告 文档版本: 1.0 分析日期: 2026-02-15 严重性等级: 🔴 Critical (P0) 状态: 已确认,待修复 📋 执行摘要 | Executive Summary BUG描述 Trading-in-websocket项目的数据自愈系统(Data Healing System)在启动时存在严重逻辑缺陷。当交易对的K线数据完全缺失时,自愈流程无法正常工作,导致修复失败,最终可能造成服务拒绝启动或降级启动。 核心问题 概念混淆:代码混淆了两个不同的时间点概念: * zscore缺失时间点 (missing_times):需要计算zscore的目标时间点 * K线缺失时间点 (kline_gaps):计算zscore所需的输入K线时间点 当K线完全缺失时,代码只补充了zscore缺失的时间点,而忽视了计算zscore所需的130条K线完整窗口。 影响范围 * 新币种首次接入(K线表为空) * 数据迁移后K线数据未同步 * 数据库故障恢复场景 修复复杂度 低 - 仅需修改

By SHI XIAOLONG

启动数据自愈系统BUG分析1

name: 数据自愈系统 BUG 修复 overview: 数据自愈系统存在严重配置不一致:ContinuityChecker 和 time 生成逻辑使用 5 分钟间隔(EXPECTED_INTERVAL_MINUTES=5),但实际修复和加载的是 zscore_4h 数据(4 小时=240 分钟间隔),导致连续性检查误判、生成大量虚假缺失点,进而触发无效或错误的修复。 todos: [] isProject: false 数据自愈系统严重 BUG 分析报告 完整因果链 flowchart TB subgraph input [输入] I1["程序启动"] I2["heal_symbols: 有 zscore_4h

By SHI XIAOLONG

限价单部分成交该如何处理?

限价单部分成交处理重构 - 实施报告 项目: Hyperliquid 配对交易系统 日期: 2026-02-13 状态: ✅ 代码完成 | ⏳ 待测试网验证 📋 执行摘要 本次重构彻底解决了限价单部分成交处理的致命缺陷,通过删除错误的清理逻辑、接受所有部分成交、以及将 Leg B 改为市价单,实现了: * ✅ 配对成功率: 70% → ~100% (+30%) * ✅ 部分成交接受率: 0% → 100% (+100%) * ✅ 成本降低: ~40% (消除双倍手续费和市价滑点) * ✅ 代码简化: 删除 ~50行复杂逻辑 * ✅ 延迟优化: 双腿模式延迟减少 50% ✅ 已完成的工作 1. 数据结构扩展 文件: src/trading/models.py OrderResult 类扩展 (第103-104行) * ✅ requested_size:

By SHI XIAOLONG

老接口设计 重构设计方案

Protocol 接口设计完整解决方案 目录 1. 新增领域模型 2. 错误处理体系 3. 重构后的 Protocol 接口 4. Executor 实现适配 5. PositionManager 适配 6. TradeRepository 适配 7. 迁移策略 8. 测试策略 1. 新增领域模型 📄 src/trading/domain/models.py """ 交易领域模型 提供类型安全的数据结构,替代原始 dict 返回值。 所有字段使用严格类型标注,支持运行时验证。 """ from dataclasses import dataclass, field from

By SHI XIAOLONG

websocket实现L2 订单簿快照

L2 订单簿快照优化 - 实施总结 ✅ 实施完成状态 状态: 🎉 所有步骤已完成 日期: 2026-02-13 分支: adaptive_algri 📋 实施概览 架构变更 旧架构(已完全废弃): 下单 → _calculate_limit_price() → get_l2_best_prices() → API 调用 延迟: 100-500ms | API 频率: 100% 新架构(已完全采用): WebSocket L2 订阅 → 实时缓存 → 信号触发时读取快照 → 下单直接使用 延迟: < 10ms | API 频率: < 1%(仅降级) 核心优势 * ✅ 零 API

By SHI XIAOLONG

持仓信息WebSocket推送 来 替代Rest API

持仓信息WebSocket推送实现总结 📋 实施概览 目标:将持仓查询从"完全依赖HTTP API"改为"WebSocket推送 + 本地缓存 + HTTP降级" 方案选择:方案2(事件驱动架构) ✅ 实施时间:2026-02-13 ✅ 已完成的工作 Phase 1: 事件系统基础(3-4h) 创建的文件 * ✅ src/events/__init__.py - 事件系统模块导出 * ✅ src/events/base.py - Event基类和EventPriority枚举 * ✅ src/events/trading_events.py - 6个交易事件类型 * ✅ src/events/system_events.py -

By SHI XIAOLONG

账户状态同步超时导致的连锁问题

仓位误清除 Bug 修复报告 日期: 2026-02-13 严重级别: 🔴 P0 - 致命 状态: ✅ 已修复 影响范围: 仓位管理、风险控制、资金安全 📋 问题摘要 症状 系统在 API 超时时误将正常持仓判断为"幽灵仓位"并自动清除,导致: * 系统认为仓位已关闭,实际仍在交易所存在 * 策略引擎停止监控该仓位 * 止损/风控失效,存在清算风险 * 可能重复开仓,放大风险敞口 触发条件 前提条件: - 系统有活跃持仓 - 仓位同步线程运行中 (每60秒) 触发事件: - Hyperliquid API 请求超时 (>10秒) - 网络抖动/API限流/

By SHI XIAOLONG

限价单部分成交处理方案

限价单部分成交处理重构 - 实施报告 项目: Hyperliquid 配对交易系统 日期: 2026-02-13 状态: ✅ 代码完成 | ⏳ 待测试网验证 📋 执行摘要 本次重构彻底解决了限价单部分成交处理的致命缺陷,通过删除错误的清理逻辑、接受所有部分成交、以及将 Leg B 改为市价单,实现了: * ✅ 配对成功率: 70% → ~100% (+30%) * ✅ 部分成交接受率: 0% → 100% (+100%) * ✅ 成本降低: ~40% (消除双倍手续费和市价滑点) * ✅ 代码简化: 删除 ~50行复杂逻辑 * ✅ 延迟优化: 双腿模式延迟减少 50% ✅ 已完成的工作 1. 数据结构扩展 文件: src/trading/models.py OrderResult 类扩展 (第103-104行) * ✅ requested_size:

By SHI XIAOLONG