Signal sync close notification. Emitted when an active pending signal is closed (TP/SL hit, time expired, or user-initiated).
type: "signal_sync.close"
Discriminator for type-safe union
id: string
Unique notification identifier
timestamp: number
Unix timestamp in milliseconds when signal was closed
backtest: boolean
Whether this notification is from backtest mode (true) or live mode (false)
symbol: string
Trading pair symbol (e.g., "BTCUSDT")
strategyName: string
Strategy name that generated this signal
exchangeName: string
Exchange name where signal was executed
signalId: string
Unique signal identifier (UUID v4)
currentPrice: number
Current market price at close
pnl: IStrategyPnL
Final PNL at signal close
pnlPercentage: number
Profit/loss as percentage
pnlPriceOpen: number
Entry price from PNL calculation
pnlPriceClose: number
Exit price from PNL calculation
pnlCost: number
Absolute profit/loss in USD
pnlEntries: number
Total invested capital in USD
position: "long" | "short"
Trade direction: "long" (buy) or "short" (sell)
priceOpen: number
Effective entry price at close
priceTakeProfit: number
Effective take profit price at close
priceStopLoss: number
Effective stop loss price at close
originalPriceTakeProfit: number
Original take profit price before any trailing adjustments
originalPriceStopLoss: number
Original stop loss price before any trailing adjustments
originalPriceOpen: number
Original entry price before any DCA averaging
totalEntries: number
Total number of DCA entries (_entry.length). 1 = no averaging.
totalPartials: number
Total number of partial closes executed (_partial.length). 0 = no partial closes done.
scheduledAt: number
Signal creation timestamp in milliseconds
pendingAt: number
Position activation timestamp in milliseconds
closeReason: string
Why the signal was closed (take_profit | stop_loss | time_expired | closed)
createdAt: number
Unix timestamp in milliseconds when the notification was created