auto_trade_sys/docs/trades_vs_binance_trades.md
薇薇安 74c21bea9b feat(stats): Update admin dashboard stats to include recent 30-day account snapshots and enhance trade data source options
Modified the admin dashboard statistics to retrieve account snapshots from the last 30 days instead of just 1 day, ensuring more comprehensive data. Additionally, introduced a new data source option for trades, allowing users to select between 'binance' and 'local' records, with appropriate handling for each source. Updated the frontend components to reflect these changes and improve user experience in managing trade data.
2026-03-01 12:58:49 +08:00

38 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# trades 表 vs binance_trades 表:角色与使用建议
## 两张表的角色
### trades 表(本地交易记录)
- **数据来源**:本系统在**开仓/平仓、补建、同步**时写入或更新。
- **粒度**:一笔「回合」一条记录(开仓 → 平仓),含 entry_price、exit_price、entry_time、exit_time、pnl、exit_reason、entry_order_id、exit_order_id 等。
- **主要用途****主要支持交易与监控相关**——实盘运行时的持仓状态、风控、冷却、对账、pending 补全等;用户端「交易记录」可选「本地记录」查看本系统回合,但**查询/分析订单建议以 binance_trades 为准**。
### binance_trades 表(币安成交同步)
- **数据来源**:定时任务 `scripts/sync_binance_orders.py` 从币安 API 拉取 **userTrades成交** 入库。
- **同步节奏与延时**:脚本按 **每 3 小时的第 0 分钟** 执行crontab 示例:`0 */3 * * *`),存在一定延时性,页面看到的「币安成交」最多可能滞后约 3 小时;如需最新可手动执行一次脚本。
- **粒度****一笔成交一条记录**(含 trade_id、order_id、symbol、side、price、qty、realized_pnl、commission、trade_time 等)。
- **主要用途**
1. **管理员「数据管理」**:按账号/时间/交易对查询已同步的币安成交,做分析与导出。
2. **统计与分析**`TradeStats` 聚合7 天统计、按交易对、按小时等)**优先使用 binance_trades**,无数据时再回退到 trades。
## 结论与建议
1. **分析、统计、查询「订单/成交」**
**以 binance_trades 为准即可**。数据与交易所一致,更适合做盈亏分析、策略回看。系统已按「优先 binance_trades无则 trades」实现。
2. **用户端「交易记录」为何经常没数据?**
因为当前只查 **trades**。若实盘不全在本系统跑、或同步/补建不完整trades 会少或为空。
**建议**:用户端「交易记录」**默认从 binance_trades 查**(按当前账号 + 时间范围),与管理员在数据管理里看到的来源一致,更可靠。
3. **trades 表是否还有用?**
**有用,但角色已明确为「主要支持交易、监控」**开平仓状态、风控、冷却、对账、pending 补全等仍依赖 trades**订单查询与盈亏分析**以 binance_trades 为主。
## 实施情况
- 用户端「交易记录」支持数据源切换:
- **币安成交binance_trades**:默认。按当前账号从 DB 已同步的 binance_trades 查询,展示成交明细(时间、方向、价格、数量、已实现盈亏、手续费等)。需先在服务器运行 `scripts/sync_binance_orders.py` 同步。**数据由定时任务每 3 小时的第 0 分钟同步,存在一定延时(最多约 3 小时)。**
- **本地记录trades**:保留原有逻辑,展示回合级记录(开/平仓时间、入场/出场价、平仓原因等)。
- 后端:`GET /api/trades?source=binance&period=7d&symbol=...` 使用当前账号从 binance_trades 查询并返回列表,与管理员数据管理同源。