auto_trade_sys/docs/position_analysis_2026-02-28.md
薇薇安 4a5406c7e8 feat(position_manager): Enhance stop-loss logic for short positions and implement automatic SL/TP order synchronization
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.
2026-02-28 19:01:59 +08:00

6.2 KiB
Raw Blame History

持仓分析持仓记录_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 移到 455460 一带),锁住部分利润;否则价格反弹到 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 > 0entry + (pnl - protect)/q 可能大于初始止损 479导致条件 new_stop_loss > current_sl 不成立,从而从不更新;即便更新,也是把止损往更上方移(更宽松),而不是往下锁利。这与「盈利后锁利」的目标相反。
  • 建议:复查做空移动止损公式与更新条件,确保「盈利后新止损比当前止损更靠近当前价」(空头即新止损 < 当前止损),并只在「锁利方向」上更新。

3. 亏损单 ICP -24.5% 且无止损

  • 单笔已亏 24.5%,若无止损会继续暴露风险。
  • 建议:立即对该仓设止损(或减仓/平仓);并检查为何该仓从未挂上止损(是否补建、是否开仓失败挂单等)。

4. 多账号/多数据源一致性

  • 持仓记录中 identry_timecreated_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修正做空移动止损方向与条件保证同步/补建仓位也纳入监控并补挂保护单