feat: archive entry type from review, prune stale trades on sync, manual delete

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-08 12:39:27 +08:00
parent e68e29629e
commit 46963a4498
7 changed files with 260 additions and 19 deletions
+12 -1
View File
@@ -119,9 +119,20 @@ def effective_entry_type(d: dict) -> str:
kst = str(d.get("key_signal_type") or "").strip()
if kst:
return kst
legacy = str(d.get("entry_type") or "").strip()
if legacy and legacy not in ("trend_pullback", "roll", "trend"):
return _normalize_monitor_type_label(legacy) or legacy
return mt
def display_entry_type_label(d: dict) -> str:
"""档案/列表展示用开仓类型(不回落为「下单监控」若已有复盘或建档类型)。"""
label = effective_entry_type(d).strip()
if not label:
return ""
return _normalize_monitor_type_label(label) or label
def effective_hold_minutes(
d: dict,
*,
@@ -281,7 +292,7 @@ def _normalize_archive_trade_row(
opened_ms_i = int(opened_ms) if opened_ms else None
closed_ms_i = int(closed_ms) if closed_ms else None
hold_m = effective_hold_minutes(d, opened_ms=opened_ms_i, closed_ms=closed_ms_i)
entry_type = effective_entry_type(d)
entry_type = display_entry_type_label(d)
reviewed = bool(
d.get("reviewed_at")
or d.get("reviewed_result")