Commit Graph

613 Commits

Author SHA1 Message Date
薇薇安
bfe3d8ec75 feat(binance_client, position_manager): 优化对冲模式处理与持仓检查逻辑
在 `binance_client.py` 中增强了对冲模式的处理逻辑,添加了对对冲模式检测失败的处理,确保在尝试单向模式失败后再尝试对冲模式。同时,在 `position_manager.py` 中引入了持仓存在性检查,避免因持仓不存在或方向不匹配导致的错误,提升了系统的稳定性与风险控制能力。
2026-02-20 00:36:09 +08:00
薇薇安
d31c44a22a feat(position_manager, config): 添加早止盈功能以优化山寨币交易策略
在 `position_manager.py` 中实现了早止盈逻辑,允许在盈利达到一定比例且持仓时间超过指定小时数时,自动市价止盈,避免反转风险。同时,在 `config.py` 中新增相关配置项以支持该功能,提升了交易策略的灵活性与风险控制能力。
2026-02-20 00:33:28 +08:00
薇薇安
43daa922a4 feat(position_manager): 优化止损与止盈逻辑,确保实际止损距离与盈亏比计算一致
在 `position_manager.py` 中更新了止损和止盈计算逻辑,确保使用实际止损距离进行盈亏比的计算,避免因保证金封顶导致的止盈不合理。同时,新增止盈上限配置,防止止盈距离过大。此改动提升了交易策略的准确性与风险控制能力。
2026-02-19 18:30:23 +08:00
薇薇安
f5570f4804 1 2026-02-19 18:02:46 +08:00
薇薇安
be43ec1c33 feat(kline_stream): 优化 Redis 数据处理逻辑与内存管理
在 `kline_stream.py` 中改进了 Redis 数据处理逻辑,避免每条消息都从 Redis 获取全量数据,减少内存占用。通过复用待处理列表,提升了性能并降低了内存使用。更新了缓存管理机制,确保在有 Redis 时优先使用其进行数据存储,进一步优化了系统的内存使用效率与稳定性。
2026-02-19 09:23:53 +08:00
薇薇安
95867e90f8 feat(redis_cache, binance_client, market_scanner, position_manager, ticker_24h_stream, book_ticker_stream): 引入 Redis 缓存机制以优化数据读取与内存管理
在多个模块中实现 Redis 缓存机制,优先从 Redis 读取数据,减少进程内存占用。更新 `binance_client.py`、`market_scanner.py`、`position_manager.py`、`ticker_24h_stream.py` 和 `book_ticker_stream.py`,确保在有 Redis 时优先使用其进行数据存储,降级到内存缓存。调整缓存管理逻辑,限制进程内缓存的最大条数为 500,避免内存无限增长。此改动提升了数据访问效率,优化了内存使用,增强了系统的整体性能与稳定性。
2026-02-19 00:45:56 +08:00
薇薇安
f4feea6b87 feat(ticker_stream, book_ticker_stream): 优化内存管理与Redis写入逻辑
在 `ticker_24h_stream.py` 和 `book_ticker_stream.py` 中引入新的内存管理机制,限制进程内缓存的最大条数为 500,避免内存无限增长。更新 Redis 写入逻辑,确保在有 Redis 时优先写入 Redis,而不在进程内存中常驻数据。通过定期从 Redis 拉取数据并合并,提升了系统的内存使用效率与稳定性,同时优化了日志记录以减少高负载时的输出频率。此改动进一步增强了系统性能与资源管理能力。
2026-02-19 00:34:35 +08:00
薇薇安
a498520c51 feat(kline_stream): 优化 Redis 写入逻辑与内存管理
在 `kline_stream.py` 中增强了 Redis 写入机制,限制待处理队列大小以防止无限增长,并在 Redis 处理失败时降级到进程内存。更新了缓存管理逻辑,确保在有 Redis 时优先使用 Redis 进行数据存储,提升了系统的内存使用效率与稳定性。同时,调整了日志记录以减少高负载时的输出频率。此改动进一步优化了消息处理与系统性能。
2026-02-19 00:26:34 +08:00
薇薇安
59e25558cd feat(redis_cache, kline_stream, user_data_stream, risk_manager): 优化缓存机制与内存管理
在多个模块中引入 Redis 作为主要缓存机制,减少进程内存占用。更新 `binance_client.py`、`kline_stream.py`、`user_data_stream.py` 和 `risk_manager.py`,实现优先从 Redis 读取数据,降级到内存缓存。调整缓存 TTL 和最大条数,确保系统稳定性与性能。此改动提升了数据访问效率,优化了内存使用,增强了系统的整体性能。
2026-02-19 00:19:54 +08:00
薇薇安
80872231a5 feat(kline_stream, diagnostics): 增强 K线缓存管理与系统负载诊断功能
在 `kline_stream.py` 中新增缓存清理机制,限制缓存总大小并定期清理过期条目,防止内存无限增长。更新 `backend/诊断负载.sh` 脚本,优化系统负载检查逻辑,提供更详细的进程与日志信息,提升用户对交易服务状态的监控能力。此改动增强了系统的稳定性与性能。
2026-02-19 00:06:23 +08:00
薇薇安
e21014eb50 feat(diagnostics, documentation): 新增系统负载诊断脚本与指南
在 `backend` 目录下新增 `诊断负载.sh` 脚本,提供系统负载、CPU、内存使用情况及数据库连接数的快速诊断功能。新增文档 `负载问题排查与快速降负载指南.md`,详细说明负载诊断步骤、常见原因及解决方法,帮助用户有效管理系统负载。此改动提升了系统监控能力与用户支持。
2026-02-18 23:35:09 +08:00
薇薇安
33ac043324 feat(trades, database): 优化交易记录查询与过滤逻辑
在 `trades.py` 中更新 `get_trades` 和 `get_trade_stats` 方法,增强了交易记录的查询功能,支持更多过滤选项(如 `limit`、`reconciled_only` 和 `include_sync`)。同时,调整了日志记录级别,从 `info` 改为 `debug`,以减少高负载时的日志输出。更新 `database/models.py` 中的 `get_all` 方法,新增参数以支持更灵活的查询,提升了系统的性能与稳定性。
2026-02-18 22:22:53 +08:00
薇薇安
7139b5de76 feat(trades, database): 增强订单同步与记录完善逻辑
在 `trades.py` 中更新 `sync_trades_from_binance` 方法,确保使用当前账号的 API 密钥进行订单同步,并优化了日志记录以反映同步状态。新增自动全量同步逻辑,处理无记录情况下的补全需求。更新 `database/models.py` 中的 `update_pending_by_entry_order_id` 方法,提供兜底机制以完善 pending 记录,确保在缺失 clientOrderId 时仍能更新交易状态。此改动提升了交易记录的完整性与系统的稳定性。
2026-02-18 22:11:06 +08:00
薇薇安
44458dca90 feat(kline_stream): 优化消息处理与Redis写入逻辑
在 `kline_stream.py` 中引入并发限制,使用信号量控制同时处理的消息数量,避免任务堆积导致性能下降。优化消息处理为异步方法,减少事件循环阻塞。增加批量写入Redis的机制,降低写入频率,提升系统性能与稳定性。同时,调整日志记录频率,减少高负载时的日志输出。此改动显著提升了消息处理效率与系统的响应能力。
2026-02-18 00:52:45 +08:00
薇薇安
c9d9836df5 feat(kline_stream, market_scanner, config): 优化 K线订阅逻辑与缓存机制
在 `config.py` 中新增 `SCAN_LIMIT_KLINE_SUBSCRIBE` 配置,限制 K线订阅数量以降低负载。更新 `kline_stream.py`,引入订阅统计与数量限制,避免过多订阅导致性能问题。修改 `market_scanner.py`,优化 K线数据获取流程,优先使用已有缓存,减少不必要的订阅。此改动提升了系统的稳定性与性能。
2026-02-18 00:36:44 +08:00
薇薇安
0a7bb0de2d feat(user_data_stream, binance_client): 优化 listenKey 管理与缓存机制
在 `user_data_stream.py` 中更新 `start` 方法,优先从缓存获取 listenKey,避免重复创建。增强了错误处理和日志记录,确保在缓存不可用时能够回退到创建新 key 的逻辑。更新 `binance_client.py` 中的 `create_futures_listen_key` 方法,新增重试机制以提高稳定性。此改动提升了 listenKey 管理的灵活性和系统的性能。
2026-02-18 00:11:54 +08:00
薇薇安
a404f1fdf8 feat(binance_client, market_scanner): 优化 K线数据获取逻辑与缓存机制
在 `binance_client.py` 中更新 `get_klines` 方法,新增多账号共享 Redis 缓存机制,提升 K线数据获取效率,减少 REST API 调用。优化日志记录,确保清晰反馈缓存来源。更新 `config.py`,引入 `SCAN_PREFER_WEBSOCKET` 配置,优先使用 WebSocket 获取数据。修改 `market_scanner.py`,增强 K线数据获取流程,优先从共享缓存读取,确保数据完整性与实时性。此改动提升了系统的性能与稳定性。
2026-02-17 23:59:31 +08:00
薇薇安
a862aec4f5 feat(binance_client): 优化 listenKey 创建与延长逻辑,支持 WebSocket API
在 `binance_client.py` 中更新 `create_futures_listen_key` 和 `keepalive_futures_listen_key` 方法,新增优先使用 WebSocket API 的功能,若 WebSocket 不可用则回退到 REST API。增强了错误处理和日志记录,确保在请求失败时提供更清晰的反馈。此改动提升了 listenKey 管理的灵活性和系统的稳定性。
2026-02-17 23:28:28 +08:00
薇薇安
c7f1361d99 1 2026-02-17 23:13:49 +08:00
薇薇安
b0392f358e 1 2026-02-17 23:06:22 +08:00
薇薇安
60a7e15100 feat(trades, trade_list): 增强订单同步功能与用户界面优化
在 `trades.py` 中更新 `sync_trades_from_binance` 方法,改进日志记录以区分全量与增量同步模式,并添加对获取订单数为零的警告处理。更新 `TradeList.jsx` 组件,优化用户界面,新增订单同步选项和状态显示,提升用户体验。此改动增强了系统的灵活性和数据完整性。
2026-02-17 23:02:49 +08:00
薇薇安
1430ddc532 feat(trades, trade_list, api): 增强历史订单同步功能以支持所有交易对的补全
在 `trades.py` 中更新 `sync_trades_from_binance` 方法,新增 `sync_all_symbols` 参数,允许用户选择同步所有交易对的历史订单并创建缺失的交易记录。更新前端组件 `TradeList.jsx` 以支持该功能,添加用户确认提示和状态显示,提升用户体验和数据完整性。同时,调整 API 接口以处理新的参数,确保与后端交互的准确性。此改动增强了交易记录的完整性和系统的灵活性。
2026-02-17 22:51:31 +08:00
薇薇安
ac1336dab8 feat(trades): 增强交易同步逻辑以优化记录查询和错误处理
在 `trades.py` 中更新了 `sync_trades_from_binance` 方法,新增时间范围内记录的查询逻辑,确保能够补全缺失的历史订单号。引入了更详细的日志记录,提升了错误处理的可追溯性,确保在获取交易对列表失败时提供清晰的反馈。此改动提升了交易记录的完整性和系统的稳定性。
2026-02-17 22:46:33 +08:00
薇薇安
01b8a4932f feat(trades): 优化订单同步逻辑以补全缺失的平仓和开仓订单
在 `trades.py` 中增强了 `sync_trades_from_binance` 方法,新增对平仓订单和开仓订单的分类处理,确保能够补全缺失的订单号。引入了对已存在订单的跳过逻辑,记录无法匹配的情况,并优化了日志记录以提升可追溯性。此改动提升了交易记录的完整性和系统的稳定性。
2026-02-17 22:41:15 +08:00
薇薇安
55ae7b5b08 feat(trade_list, api): 添加订单同步功能以补全缺失的历史订单
在 `TradeList.jsx` 中新增订单同步功能,允许用户从币安同步最近的历史订单并补全缺失的订单号。引入 `syncTradesFromBinance` 方法于 `api.js`,实现与后端的交互,处理同步请求并返回结果。更新前端界面以显示同步状态和结果,提升用户体验和数据完整性。
2026-02-17 22:27:10 +08:00
薇薇安
415589e625 feat(trade, position_manager, user_data_stream): 增强交易记录管理与用户数据流处理
在 `models.py` 中新增 `update_entry_order_id` 方法,用于补全或更新开仓订单号,提升交易记录的完整性。更新 `set_exit_order_id_for_open_trade` 方法以支持按 `entry_order_id` 精确匹配,优化平仓订单的回写逻辑。在 `position_manager.py` 中添加对 `entry_order_id` 的处理,确保在保存交易记录时能够及时补全。更新 `user_data_stream.py` 中的日志记录,提供更详细的状态信息,增强系统的可追溯性与调试能力。
2026-02-17 22:11:36 +08:00
薇薇安
48c3f946cc feat(config, market_scanner, position_manager, strategy): 引入市场节奏自动识别与流动性检查功能
在 `config.py` 中新增市场节奏自动识别配置,支持低波动期参数切换。更新 `market_scanner.py` 以根据市场波动情况动态调整策略,并在扫描时计算中位数以判断市场状态。同时,在 `position_manager.py` 中实现时间止损逻辑,确保在低波动期内有效管理持仓。新增流动性检查功能于 `strategy.py`,在开仓前评估市场深度与价差,提升交易决策的准确性与风险控制能力。
2026-02-17 10:41:47 +08:00
薇薇安
42480ef886 feat(trades): 添加时间筛选功能以优化交易记录查询
在 `trades.py` 中新增 `time_filter` 参数,允许用户按平仓时间或开仓时间筛选交易记录。更新 `Trade.get_all` 方法以支持该功能,并调整查询逻辑以符合新的时间筛选需求。同时,前端组件 `TradeList.jsx` 也进行了相应更新,增加了时间筛选按钮,提升了用户体验和数据查询的灵活性。
2026-02-17 08:01:35 +08:00
薇薇安
3a2536ae96 fix(system): 优化服务状态检查的异常处理逻辑
在 `system.py` 中更新了服务状态检查的异常处理逻辑,当 supervisor 未安装或未运行时,记录为 WARNING 并返回友好的错误信息。增强了日志记录的可读性,确保在出现问题时提供清晰的反馈。同时,在 `position_manager.py` 中改进了止损止盈检查的错误日志,确保记录详细的错误信息以便于调试。
2026-02-17 07:53:54 +08:00
薇薇安
c750478af9 fix(binance_client): 优化签名计算逻辑以符合币安要求
在 `binance_client.py` 中更新了签名计算逻辑,确保参与签名的参数格式与币安REST API一致。新增 `_param_val_for_signature` 函数处理布尔值和空值,提升了签名的准确性和安全性。此改动增强了系统的稳定性和合规性。
2026-02-16 19:25:22 +08:00
薇薇安
e5bc2547aa feat(binance_client): 引入WebSocket交易客户端以优化下单逻辑
在 `binance_client.py` 中新增 WebSocket 交易客户端的延迟初始化,优先使用 WebSocket 下单以减少 REST 超时。更新 `futures_create_algo_order` 方法,尝试通过 WebSocket 创建条件单,并在失败时回退到 REST 调用。同时,调整 `ALGO_ORDER_TIMEOUT_SEC` 的默认值为 45秒,以应对高负载情况。增强了异常处理和日志记录,确保系统的稳定性和可追溯性。
2026-02-16 19:19:56 +08:00
薇薇安
857128bca9 feat(config, market_scanner, strategy): 增强多账号支持与并发控制
在 `config.py` 中新增多账号扫描配置,支持并发数和错峰扫描设置。更新 `market_scanner.py` 以根据配置动态调整并发请求数,优化资源使用。修改 `strategy.py` 以实现多账号错峰扫描,避免低配服务器的 CPU 过载,提升系统稳定性和效率。
2026-02-16 18:28:38 +08:00
薇薇安
0fb42a5f24 feat(market_cache): 引入市场数据缓存机制以优化API调用
在 `backend/database/models.py` 中新增 `MarketCache` 类,支持从数据库缓存交易对信息和资金费率,减少对币安API的调用频率。更新 `binance_client` 和 `market_scanner` 以优先从缓存读取数据,添加超时处理和重试机制,提升系统稳定性。同时,增强了资金费率和主动买卖量的过滤逻辑,确保在开仓前进行有效的风险控制。
2026-02-16 18:05:11 +08:00
薇薇安
43e993034f feat(redis_integration): 支持多进程共用市场数据流
在 `binance_client`、`kline_stream`、`book_ticker_stream` 和 `ticker_24h_stream` 中引入 Redis 缓存支持,允许 Leader 进程写入数据,其他进程从 Redis 读取,提升数据获取效率。更新了相关逻辑以确保在多进程环境下的稳定性和一致性,同时增强了异常处理和日志记录,确保系统的可追溯性。
2026-02-16 17:44:10 +08:00
薇薇安
249aec917a feat(binance_client, market_scanner, position_manager): 增强行情数据获取与处理逻辑
在 `binance_client` 中新增多个公开行情接口,包括深度信息、资金费率和未平仓合约数的获取,优化了 REST API 的调用逻辑。更新 `market_scanner` 以并行请求主周期和确认周期的 K线数据,提升了数据获取效率并引入超时处理。`position_manager` 中增加了从深度信息获取当前价格的逻辑,确保在多种情况下都能准确获取价格,增强了系统的稳定性和可追溯性。
2026-02-16 17:30:05 +08:00
薇薇安
3539180362 feat(main): 添加自定义 asyncio 异常处理器以优化日志记录
在主函数中引入自定义的 asyncio 异常处理器,确保在 WebSocket 连接关闭时的 ping 操作不会产生错误日志。此改动提升了系统的日志可读性,避免了不必要的错误信息输出,同时保持了对其他异常的标准处理方式。
2026-02-16 17:15:06 +08:00
薇薇安
30f4a22fb4 feat(binance_client, position_manager): 优化价格获取逻辑与异常处理
在 `binance_client` 中引入 K线和最优挂单的 WebSocket 流,优先从缓存中获取价格数据,减少对 REST API 的依赖。同时,更新了价格获取逻辑,确保在未能获取价格时提供详细的错误信息。增强了异常处理,确保在请求超时或失败时记录相关日志,提升系统的稳定性和可追溯性。
2026-02-16 17:11:25 +08:00
薇薇安
dfbdfee596 fix(binance_client, ticker_stream, user_data_stream): 增强异常处理和日志记录
在 `binance_client`、`ticker_24h_stream` 和 `user_data_stream` 中优化了异常处理逻辑,确保在发生错误时记录详细的错误类型和信息。更新了日志格式,以便于后续排查和监控。同时,增加了对请求超时的处理,提升了系统的稳定性和可追溯性。
2026-02-16 16:51:22 +08:00
薇薇安
ec5c76c546 feat(trades): 优化从币安同步历史订单的逻辑
更新 `sync_trades_from_binance` 接口,新增 `account_id` 参数以支持多账户同步。改进了订单同步逻辑,仅对数据库中有记录的交易对进行拉取,避免全市场请求,提升效率。同时,增强了异常处理和日志记录,确保同步过程的稳定性和可追溯性。
2026-02-16 15:51:51 +08:00
薇薇安
c6126a42c9 feat(ticker_stream): 引入24小时行情WebSocket流以优化数据获取
在交易系统中新增24小时行情WebSocket流的支持,优先从缓存中读取行情数据,减少对REST API的依赖。更新市场扫描器以使用WebSocket缓存,确保在缓存过期时回退到REST请求。同时,添加了相应的异常处理逻辑以增强系统的稳定性。
2026-02-16 15:22:51 +08:00
薇薇安
5154b4933e feat(trading_system): 优化交易记录管理与用户数据流集成
在 `position_manager` 和 `risk_manager` 中引入用户数据流缓存,优先使用 WebSocket 更新持仓和余额信息,减少对 REST API 的依赖。同时,增强了交易记录的创建和更新逻辑,支持在订单成交后完善记录,确保与币安数据一致性。新增 `update_open_fields` 和 `update_pending_to_filled` 方法,提升了交易记录的管理能力。
2026-02-16 15:16:49 +08:00
薇薇安
aa073099f2 feat(position_manager): 添加落库失败独立日志功能以便于排查
在 `position_manager` 中新增日志记录功能,当币安订单已成交但未成功写入数据库时,将相关信息记录到独立的 `trade_db_failures.log` 文件中。此功能有助于排查与对账,确保交易记录的准确性和完整性。
2026-02-16 14:23:01 +08:00
薇薇安
b9392e096c feat(trades): 添加对账校验接口以验证交易记录准确性
新增 `GET /api/trades/verify-binance` 接口,允许用户校验与币安的交易记录一致性。该接口支持指定时间范围和校验条数,返回校验结果的汇总和详细信息,确保策略执行分析所依赖的数据与交易所一致。
2026-02-16 14:02:55 +08:00
薇薇安
225cb436d1 feat(trades): 添加可对账记录筛选功能以确保与币安一致
在获取交易记录和统计时,新增 `reconciled_only` 参数,默认值为 true,确保仅返回可对账的交易记录(包含 entry_order_id 和 exit_order_id)。此改动有助于提高统计的准确性,确保系统盈亏与币安一致。
2026-02-16 12:42:58 +08:00
薇薇安
c7e39ec1a4 1 2026-02-16 12:13:44 +08:00
薇薇安
a402007b99 1 2026-02-16 12:05:11 +08:00
薇薇安
22efd377a7 fix: 修正盈亏计算以包含实盘数据
使用实盘盈亏和手续费计算有效盈亏,当实盘数据存在时优先使用。
同时保留原有的价格差盈亏计算作为参考。
2026-02-16 11:54:37 +08:00
薇薇安
0eb9b076e3 调整可能盈利的策略 2026-02-16 11:41:43 +08:00
薇薇安
a884ed13ad 订单记录与币安的一致性 2026-02-16 10:46:09 +08:00
薇薇安
b5590b760f 1 2026-02-16 10:36:03 +08:00