Discriminator for signal-open action
Whether this event is from backtest mode (true) or live mode (false)
Cost of the position at close (sum of all entry costs)
Market price at the moment of activation (VWAP or candle average)
Exchange name where signal was executed
Timeframe name (used in backtest mode, empty string in live mode)
Original entry price before any DCA averaging (initial priceOpen)
Original stop loss price before any trailing adjustments
Original take profit price before any trailing adjustments
Position activation timestamp in milliseconds (set at this event)
Total PNL of the closed position (including all entries and partials)
Trade direction: "long" (buy) or "short" (sell)
Entry price at which the limit order was filled
Effective stop loss price at activation
Effective take profit price at activation
Signal creation timestamp in milliseconds (when scheduled signal was first created)
Complete public signal row at the moment of this event
Unique signal identifier (UUID v4)
Strategy name that generated this signal
Trading pair symbol (e.g., "BTCUSDT")
Timestamp from execution context (tick's when or backtest candle timestamp)
Total number of DCA entries at the time of close (_entry.length). 1 = no averaging done (only initial entry). 2+ = averaged positions.
Total number of partial closes executed at the time of close (_partial.length). 0 = no partial closes done. 1+ = partial closes executed.
Signal open sync event.
Emitted when a scheduled (limit order) signal is activated — i.e., the exchange allowed the framework to enter the position by filling the limit order at priceOpen.
In backtest mode: fired when candle.low <= priceOpen (long) or candle.high >= priceOpen (short). In live mode: fired when the exchange confirms the limit order is filled.
Consumers use this event to synchronize external order management systems (e.g., confirm that a limit buy/sell was executed on the exchange).
Consumers: