Updated the stop-loss calculation for short positions to ensure it locks in profits effectively. Added logic to automatically synchronize stop-loss and take-profit orders for positions without existing SL/TP on the exchange. This improves risk management and ensures positions are adequately protected. Enhanced logging for better tracking of stop-loss updates and synchronization events.
100 lines
6.2 KiB
Markdown
100 lines
6.2 KiB
Markdown
# 持仓分析:持仓记录_2026-02-28T10-43-05.json
|
||
|
||
## 一、20% 以上盈利的持仓(共 3 个)
|
||
|
||
| 交易对 | 方向 | 盈亏% | 入场价 | 标记价 | 止损 | 止盈 | 交易所 SL/TP |
|
||
|--------|------|-------|--------|--------|------|------|--------------|
|
||
| **WIFUSDT** | SELL | **40.3%** | 0.2051 | 0.1863 | **无** | **无** | **无** |
|
||
| **ZECUSDT** | SELL | **26.3%** | 221.44 | 207.78 | **无** | **无** | **无** |
|
||
| **BCHUSDT** | SELL | **23.7%** | 470.74 | 444.40 | 479.05 | 436.04 | 有 |
|
||
|
||
### 止损问题诊断
|
||
|
||
1. **WIF、ZEC:完全没有止损/止盈**
|
||
- 两笔已浮盈 40%、26%,但交易所无任何 SL/TP 挂单,一旦反转会全部回吐甚至变亏。
|
||
- 可能原因:非本系统开仓(手动/别处)、或开仓时未成功挂出 SL/TP、或同步/补建时未补挂。
|
||
- **建议**:尽快在交易所或通过系统对这两笔**至少挂上保本/锁利止损**(例如锁住一半利润或 5%~10% 利润)。
|
||
|
||
2. **BCH:有 SL/TP,但止损未上移锁利**
|
||
- 空头:入场 470.74,当前 444.40,止损仍在 **479.05**(开仓时的初始止损,高于入场价)。
|
||
- 正确做法:盈利 23.7% 后,**做空的移动止损应下移**(例如从 479 移到 455~460 一带),锁住部分利润;否则价格反弹到 479 才触发,会几乎回吐全部盈利。
|
||
- 可能原因:
|
||
- 该持仓不在本系统 `active_positions` 内(例如由同步/补建得到),未参与定时检查的移动止损逻辑;
|
||
- 或做空方向的移动止损更新条件/方向在代码中有误(见下文「策略执行」)。
|
||
|
||
---
|
||
|
||
## 二、全部 13 笔持仓汇总
|
||
|
||
| 交易对 | 方向 | 盈亏% | 止损 | 止盈 | 交易所有 SL/TP |
|
||
|--------|------|-------|------|------|----------------|
|
||
| WIFUSDT | SELL | 40.3 | 无 | 无 | 无 |
|
||
| ZECUSDT | SELL | 26.3 | 无 | 无 | 无 |
|
||
| BCHUSDT | SELL | 23.7 | 479.05 | 436.04 | 有 |
|
||
| VVVUSDT | BUY | 15.1 | 无 | 无 | 无 |
|
||
| PUMPUSDT | SELL | 7.8 | 0.001813 | 0.001651 | 有 |
|
||
| ZROUSDT | SELL | 4.7 | 1.5763 | 1.4348 | 有 |
|
||
| SAHARAUSDT | BUY | 2.5 | 0.01829 | 0.02356 | 有 |
|
||
| ASTERUSDT | SELL | -0.0 | 0.7152 | 0.651 | 有 |
|
||
| MYXUSDT | SELL | -0.5 | 无 | 无 | 无 |
|
||
| FARTCOINUSDT | SELL | -0.8 | 无 | 无 | 无 |
|
||
| HYPEUSDT | SELL | -3.8 | 无 | 无 | 无 |
|
||
| VIRTUALUSDT | BUY | -9.5 | 无 | 无 | 无 |
|
||
| **ICPUSDT** | **BUY** | **-24.5** | **无** | **无** | **无** |
|
||
|
||
- **无任何止损/止盈的共 7 笔**:VIRTUAL, ZEC, HYPE, FARTCOIN, VVV, ICP, WIF, MYX。其中 **ICP 已亏 24.5%**,若无止损会继续放大亏损。
|
||
|
||
---
|
||
|
||
## 三、策略执行问题分析
|
||
|
||
### 1. 为何大量持仓「无止损/无止盈」?
|
||
|
||
- 若这些仓位是**本系统开仓**:开仓后应调用 `_ensure_exchange_sltp_orders` 在交易所挂 SL/TP;若仍无挂单,可能是:
|
||
- 开仓流程中未成功挂单(网络/权限/参数错误)且未重试或告警;
|
||
- 或仓位来自**同步/补建**(币安有仓、DB 无记录),补建时若未同时挂 SL/TP,就会一直处于「无保护」状态。
|
||
- **建议**:
|
||
- 对「有持仓但无 SL/TP」的 symbol,在同步/健康检查中**自动补挂**(至少止损,止盈可按配置或保守价);
|
||
- 开仓后若挂单失败,要有重试与日志/告警,便于排查。
|
||
|
||
### 2. 做空(SELL)移动止损方向是否正确?
|
||
|
||
- 做空盈利时,应**下移止损价**(从高位往当前价方向移)才能锁利;当前 BCH 空头止损仍在 479,未下移。
|
||
- 代码中做空分支(`position_manager` 定时检查)有:
|
||
- `new_stop_loss = entry_price + (pnl_amount - protect_amount) / quantity`
|
||
- `new_stop_loss = min(new_stop_loss, breakeven)`,再判断 `new_stop_loss > current_sl` 才更新。
|
||
- 做空时 `pnl_amount = (entry - current)*q > 0`,`entry + (pnl - protect)/q` 可能**大于**初始止损 479,导致条件 `new_stop_loss > current_sl` 不成立,从而从不更新;即便更新,也是把止损往**更上方**移(更宽松),而不是往下锁利。这与「盈利后锁利」的目标相反。
|
||
- **建议**:复查做空移动止损公式与更新条件,确保「盈利后新止损比当前止损更靠近当前价」(空头即新止损 < 当前止损),并只在「锁利方向」上更新。
|
||
|
||
### 3. 亏损单 ICP -24.5% 且无止损
|
||
|
||
- 单笔已亏 24.5%,若无止损会继续暴露风险。
|
||
- **建议**:立即对该仓设止损(或减仓/平仓);并检查为何该仓从未挂上止损(是否补建、是否开仓失败挂单等)。
|
||
|
||
### 4. 多账号/多数据源一致性
|
||
|
||
- 持仓记录中 `id`、`entry_time`、`created_at` 多为 null,说明可能来自**交易所快照 + 部分本地合并**,而非全部来自本系统 DB。要确保:
|
||
- 凡在交易所存在的仓位,只要被本系统「认领」或展示,就应纳入监控并在缺失时补挂 SL/TP;
|
||
- 移动止损/滞涨早止盈等逻辑应对**所有被监控仓位**生效,包括同步/补建进来的。
|
||
|
||
---
|
||
|
||
## 四、建议汇总
|
||
|
||
| 优先级 | 建议 |
|
||
|--------|------|
|
||
| **P0** | **WIF、ZEC**:立即在交易所或通过系统挂上止损(至少保本或锁 5%~10% 利润),避免 40%/26% 盈利回吐。 |
|
||
| **P0** | **ICP**:已亏 24.5% 且无止损,立即设止损或减仓/平仓,并排查为何无 SL。 |
|
||
| **P1** | **BCH**:检查该仓是否在 `active_positions`、是否参与移动止损;若在,复查做空移动止损公式与更新条件,确保盈利后下移止损锁利。 |
|
||
| **P1** | 对所有「有仓但无 SL/TP」的持仓(含同步/补建)在同步或健康检查中**自动补挂止损**(止盈可选)。 |
|
||
| **P2** | 开仓后 SL/TP 挂单失败时增加重试与告警;移动止损(尤其做空)逻辑做代码审查与单测。 |
|
||
| **P2** | 滞涨早止盈:若已开启,确认对 20%+ 盈利的仓位在「长时间不创新高」时能触发分批减仓+抬止损。 |
|
||
|
||
---
|
||
|
||
## 五、小结
|
||
|
||
- **3 笔 20%+ 盈利**:2 笔(WIF、ZEC)**完全没有止损**,1 笔(BCH)有止损但**未随盈利下移锁利**,整体「止损不对」的观感成立。
|
||
- **7 笔无任何 SL/TP**,其中 1 笔已亏 24.5%(ICP),风险突出。
|
||
- 策略执行上需:**补挂缺失 SL/TP**、**修正做空移动止损方向与条件**、**保证同步/补建仓位也纳入监控并补挂保护单**。
|