IPartial

Partial profit/loss tracking interface. Implemented by ClientPartial and PartialConnectionService.

Tracks profit/loss level milestones for active trading signals. Emits events when signals reach 10%, 20%, 30%, etc profit or loss.

profit: (symbol: string, data: ISignalRow, currentPrice: number, revenuePercent: number, backtest: boolean, when: Date) => Promise<void>

Processes profit state and emits events for new profit levels reached.

Called by ClientStrategy during signal monitoring when revenuePercent > 0. Checks which profit levels (10%, 20%, 30%, etc) have been reached and emits events for new levels only (Set-based deduplication).

loss: (symbol: string, data: ISignalRow, currentPrice: number, lossPercent: number, backtest: boolean, when: Date) => Promise<void>

Processes loss state and emits events for new loss levels reached.

Called by ClientStrategy during signal monitoring when revenuePercent < 0. Checks which loss levels (10%, 20%, 30%, etc) have been reached and emits events for new levels only (Set-based deduplication).

clear: (symbol: string, data: ISignalRow, priceClose: number) => Promise<void>

Clears partial profit/loss state when signal closes.

Called by ClientStrategy when signal completes (TP/SL/time_expired). Removes signal state from memory and persists changes to disk. Cleans up memoized ClientPartial instance in PartialConnectionService.