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.