SignalOpenedNotification

Signal opened notification. Emitted when a new trading position is opened.

type: "signal.opened"

Discriminator for type-safe union

id: string

Unique notification identifier

timestamp: number

Unix timestamp in milliseconds when signal was opened (pendingAt)

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)

position: "long" | "short"

Trade direction: "long" (buy) or "short" (sell)

priceOpen: number

Entry price for the position

priceTakeProfit: number

Take profit target price

priceStopLoss: number

Stop loss exit price

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 at signal creation (unchanged by 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.

cost: number

Cost of the initial position entry in USD (from signal.cost)

pnl: IStrategyPnL

Unrealized PNL at the moment of signal open (from signal.pnl)

pnlPercentage: number

Profit/loss as percentage (e.g., 1.5 for +1.5%, -2.3 for -2.3%)

pnlPriceOpen: number

Entry price from PNL calculation (effective price adjusted with slippage and fees)

pnlPriceClose: number

Exit price from PNL calculation (adjusted with slippage and fees)

pnlCost: number

Absolute profit/loss in USD

pnlEntries: number

Total invested capital in USD

note: string

Optional human-readable description of signal reason

scheduledAt: number

Signal creation timestamp in milliseconds (when signal was first created/scheduled)

pendingAt: number

Pending timestamp in milliseconds (when position became pending/active at priceOpen)

createdAt: number

Unix timestamp in milliseconds when the tick result was created (from candle timestamp in backtest or execution context when in live)