Stage 07.4.3.9 — Position flip flow
This commit is contained in:
@@ -170,7 +170,11 @@ class AutoTradeRunner:
|
||||
await cls._send_strong_signal_alert(state=state, payload=payload)
|
||||
return
|
||||
|
||||
if event_type in {"paper_position_opened", "paper_position_closed"}:
|
||||
if event_type in {
|
||||
"paper_position_opened",
|
||||
"paper_position_closed",
|
||||
"paper_position_flipped",
|
||||
}:
|
||||
await cls._send_execution_alert(
|
||||
state=state,
|
||||
event_type=event_type,
|
||||
@@ -330,12 +334,16 @@ class AutoTradeRunner:
|
||||
f"{event_type}:"
|
||||
f"{payload.get('symbol')}:"
|
||||
f"{payload.get('side')}:"
|
||||
f"{payload.get('old_side')}:"
|
||||
f"{payload.get('new_side')}:"
|
||||
f"{payload.get('entry_price')}:"
|
||||
f"{payload.get('exit_price')}:"
|
||||
f"{payload.get('new_entry_price')}:"
|
||||
f"{payload.get('size')}:"
|
||||
f"{payload.get('old_size')}:"
|
||||
f"{payload.get('new_size')}:"
|
||||
f"{payload.get('pnl')}"
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def _build_execution_alert_text(
|
||||
cls,
|
||||
@@ -378,6 +386,32 @@ class AutoTradeRunner:
|
||||
f"PnL: {pnl}"
|
||||
)
|
||||
|
||||
if event_type == "paper_position_flipped":
|
||||
old_side = str(payload.get("old_side") or "—")
|
||||
new_side = str(payload.get("new_side") or side or "—")
|
||||
|
||||
entry_price = cls._format_price(payload.get("entry_price"))
|
||||
exit_price = cls._format_price(payload.get("exit_price"))
|
||||
new_entry_price = cls._format_price(payload.get("new_entry_price"))
|
||||
old_size = cls._format_size(payload.get("old_size"))
|
||||
new_size = cls._format_size(payload.get("new_size"))
|
||||
pnl = cls._format_pnl(payload.get("pnl"))
|
||||
|
||||
old_icon = "🟢" if old_side == "LONG" else "🔴"
|
||||
new_icon = "🟢" if new_side == "LONG" else "🔴"
|
||||
|
||||
return (
|
||||
f"<b>🔁 Paper position flipped {old_icon} {old_side} → "
|
||||
f"{new_icon} {new_side}</b>\n\n"
|
||||
f"{symbol_text} · {leverage_text}\n\n"
|
||||
f"Old entry: $ {entry_price}\n"
|
||||
f"Exit: $ {exit_price}\n"
|
||||
f"Old size: {old_size}\n\n"
|
||||
f"New entry: $ {new_entry_price}\n"
|
||||
f"New size: {new_size}\n\n"
|
||||
f"PnL: {pnl}"
|
||||
)
|
||||
|
||||
return "<b>📄 Paper execution event</b>"
|
||||
|
||||
@classmethod
|
||||
|
||||
Reference in New Issue
Block a user