Strategy interface implemented by ClientStrategy. Defines core strategy execution methods.
tick: (symbol: string) => Promise<IStrategyTickResult>
Single tick of strategy execution with VWAP monitoring. Checks for signal generation (throttled) and TP/SL conditions.
getPendingSignal: (symbol: string) => Promise<ISignalRow>
Retrieves the currently active pending signal for the symbol. If no active signal exists, returns null. Used internally for monitoring TP/SL and time expiration.
backtest: (candles: ICandleData[]) => Promise<IStrategyBacktestResult>
Fast backtest using historical candles. Iterates through candles, calculates VWAP, checks TP/SL on each candle.
For scheduled signals: first monitors activation/cancellation, then if activated continues with TP/SL monitoring.
stop: (symbol: string) => Promise<void>
Stops the strategy from generating new signals.
Sets internal flag to prevent getSignal from being called on subsequent ticks. Does NOT force-close active pending signals - they continue monitoring until natural closure (TP/SL/time_expired).
Use case: Graceful shutdown in live trading mode without abandoning open positions.