fix: Gate force-close badge and classify midnight closes correctly

Narrow executing window to 15 minutes after the hour, show countdown when flat, run force_close before reconcile, and map 00:00 synced closes to 强制清仓 instead of 手动平仓.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-07 00:23:40 +08:00
parent d520ba6904
commit 99eb16dbd8
5 changed files with 250 additions and 21 deletions
+8 -1
View File
@@ -122,6 +122,7 @@ from lib.trade.time_close_lib import (
time_close_settings_from_row,
)
from lib.trade.force_close_lib import (
apply_force_close_display_result,
apply_force_close_to_payload,
enrich_orders_force_close,
force_close_template_context,
@@ -2054,6 +2055,12 @@ def to_effective_trade_dict(row):
item.get("effective_result"),
item.get("effective_pnl_amount"),
)
item["effective_result"] = apply_force_close_display_result(
item.get("effective_result"),
item.get("effective_closed_at"),
enabled=FORCE_CLOSE_ENABLED,
bj_hour=FORCE_CLOSE_BJ_HOUR,
)
return item
@@ -6353,10 +6360,10 @@ def background_task():
try:
auto_transfer_once_per_day()
conn = get_db()
force_close_before_reset()
reconcile_external_closes(conn)
conn.commit()
conn.close()
force_close_before_reset()
check_fib_key_monitors()
check_trigger_entry_key_monitors()
_roll_cfg = app.extensions.get("strategy_roll_cfg")