fix: OKX manual orders save entry_model for trade record 开仓类型

OKX add_order omitted entry_model on insert; align with Binance/Gate and add trade_style fallback when resolving entry_reason for close and display.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-07 00:15:22 +08:00
parent d3753f1aee
commit d520ba6904
5 changed files with 86 additions and 8 deletions
+30
View File
@@ -290,6 +290,7 @@ def resolve_trade_record_entry_reason(
entry_model: Optional[str] = None,
key_signal_type: Optional[str] = None,
monitor_type: Optional[str] = None,
trade_style: Optional[str] = None,
entry_reason_from_key_signal=None,
entry_reason_for_monitor_type=None,
) -> str:
@@ -308,9 +309,38 @@ def resolve_trade_record_entry_reason(
from_mt = (entry_reason_for_monitor_type(monitor_type) or "").strip()
if from_mt:
return from_mt
ts = (trade_style or "").strip().lower()
if ts in ("trend", "swing"):
return trade_style_label_zh(ts)
return ""
def resolve_effective_trade_entry_reason(
*,
reviewed_entry_reason: Optional[str] = None,
entry_reason: Optional[str] = None,
entry_model: Optional[str] = None,
key_signal_type: Optional[str] = None,
monitor_type: Optional[str] = None,
trade_style: Optional[str] = None,
entry_reason_from_key_signal=None,
entry_reason_for_monitor_type=None,
) -> str:
"""交易记录展示/导出用:复盘优先,再回落 entry_model / 关键位 / 策略 / trade_style。"""
for raw in (reviewed_entry_reason, entry_reason):
er = (raw or "").strip()
if er:
return er
return resolve_trade_record_entry_reason(
entry_model=entry_model,
key_signal_type=key_signal_type,
monitor_type=monitor_type,
trade_style=trade_style,
entry_reason_from_key_signal=entry_reason_from_key_signal,
entry_reason_for_monitor_type=entry_reason_for_monitor_type,
)
def enrich_entry_model_display(item: dict) -> dict:
code = normalize_entry_model_code(item.get("entry_model"))
if code: