fix: Gate hub close sync and trade record open stop-loss snapshot
Sync order monitors from Gate position history after hub flat close. Store and display initial_stop_loss in trade records instead of post-amend exchange stops. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1993,13 +1993,12 @@ def get_effective_trade_field(row, reviewed_key, base_key, default=None):
|
||||
|
||||
def to_effective_trade_dict(row):
|
||||
item = row_to_dict(row)
|
||||
base_stop = item.get("initial_stop_loss") if item.get("initial_stop_loss") not in (None, "") else item.get("stop_loss")
|
||||
from order_monitor_display_lib import snapshot_stop_loss
|
||||
|
||||
open_stop = snapshot_stop_loss(item.get("initial_stop_loss"), item.get("stop_loss"))
|
||||
item["display_open_stop_loss"] = open_stop
|
||||
item["effective_opened_at"] = get_effective_trade_field(row, "reviewed_opened_at", "opened_at", item.get("opened_at"))
|
||||
item["effective_closed_at"] = get_effective_trade_field(row, "reviewed_closed_at", "closed_at", item.get("closed_at"))
|
||||
open_stop = item.get("initial_stop_loss")
|
||||
if open_stop in (None, ""):
|
||||
open_stop = base_stop
|
||||
item["display_open_stop_loss"] = open_stop
|
||||
item["effective_stop_loss"] = get_effective_trade_field(row, "reviewed_stop_loss", "stop_loss", open_stop)
|
||||
item["effective_take_profit"] = get_effective_trade_field(row, "reviewed_take_profit", "take_profit", item.get("take_profit"))
|
||||
item["effective_result"] = get_effective_trade_field(row, "reviewed_result", "result", item.get("result"))
|
||||
@@ -2542,7 +2541,9 @@ def insert_trade_record(
|
||||
open_ts_ms = _to_ms_with_fallback(opened_at_ms, open_ts)
|
||||
close_ts_ms = _to_ms_with_fallback(closed_at_ms, close_ts)
|
||||
kst = key_signal_type_for_trade_record(key_signal_type, KEY_MONITOR_AUTO_TYPES)
|
||||
snap_sl = initial_stop_loss if initial_stop_loss not in (None, "") else stop_loss
|
||||
from order_monitor_display_lib import snapshot_stop_loss
|
||||
|
||||
snap_sl = snapshot_stop_loss(initial_stop_loss, stop_loss)
|
||||
er = (
|
||||
(entry_reason or "").strip()
|
||||
or entry_reason_from_key_signal(kst)
|
||||
|
||||
Reference in New Issue
Block a user