Connection service routing risk operations to correct ClientRisk instance.
Routes risk checking calls to the appropriate risk implementation based on the provided riskName parameter. Uses memoization to cache ClientRisk instances for performance.
Key features:
Note: riskName is empty string for strategies without risk configuration.
constructor();
loggerService: any
riskSchemaService: any
getRisk: ((riskName: string) => ClientRisk) & IClearableMemoize<string> & IControlMemoize<string, ClientRisk>
Retrieves memoized ClientRisk instance for given risk name.
Creates ClientRisk on first call, returns cached instance on subsequent calls. Cache key is riskName string.
checkSignal: (params: IRiskCheckArgs, context: { riskName: string; }) => Promise<boolean>
Checks if a signal should be allowed based on risk limits.
Routes to appropriate ClientRisk instance based on provided context. Validates portfolio drawdown, symbol exposure, position count, and daily loss limits.
addSignal: (symbol: string, context: { strategyName: string; riskName: string; }) => Promise<void>
Registers an opened signal with the risk management system. Routes to appropriate ClientRisk instance.
removeSignal: (symbol: string, context: { strategyName: string; riskName: string; }) => Promise<void>
Removes a closed signal from the risk management system. Routes to appropriate ClientRisk instance.
clear: (riskName?: string) => Promise<void>
Clears the cached ClientRisk instance for the given risk name.