Tick result: new signal just created. Triggered after getSignal validation and persistence.
action: "opened"
Discriminator for type-safe union
signal: IPublicSignalRow
Newly created and validated signal with generated ID
strategyName: string
Strategy name for tracking
exchangeName: string
Exchange name for tracking
frameName: string
Time frame name for tracking (e.g., "1m", "5m")
symbol: string
Trading pair symbol (e.g., "BTCUSDT")
currentPrice: number
Current VWAP price at signal open
backtest: boolean
Whether this event is from backtest mode (true) or live mode (false)