Connection service routing strategy operations to correct ClientStrategy instance.
Routes all IStrategy method calls to the appropriate strategy implementation based on symbol-strategy pairs. Uses memoization to cache ClientStrategy instances for performance.
Key features:
constructor();
loggerService: any
executionContextService: any
strategySchemaService: any
riskConnectionService: any
exchangeConnectionService: any
methodContextService: any
partialConnectionService: any
getStrategy: any
Retrieves memoized ClientStrategy instance for given symbol-strategy pair.
Creates ClientStrategy on first call, returns cached instance on subsequent calls. Cache key is symbol:strategyName string.
getPendingSignal: (symbol: string, strategyName: string) => Promise<ISignalRow>
Retrieves the currently active pending signal for the strategy. If no active signal exists, returns null. Used internally for monitoring TP/SL and time expiration.
tick: (symbol: string, strategyName: string) => Promise<IStrategyTickResult>
Executes live trading tick for current strategy.
Waits for strategy initialization before processing tick. Evaluates current market conditions and returns signal state.
backtest: (symbol: string, strategyName: string, candles: ICandleData[]) => Promise<IStrategyBacktestResult>
Executes backtest for current strategy with provided candles.
Waits for strategy initialization before processing candles. Evaluates strategy signals against historical data.
stop: (ctx: { symbol: string; strategyName: string; }) => Promise<void>
Stops the specified strategy from generating new signals.
Delegates to ClientStrategy.stop() which sets internal flag to prevent getSignal from being called on subsequent ticks.
clear: (ctx?: { symbol: string; strategyName: string; }) => Promise<void>
Clears the memoized ClientStrategy instance from cache.
Forces re-initialization of strategy on next getStrategy call. Useful for resetting strategy state or releasing resources.