Source code for algo_engine.engine

from __future__ import annotations

import logging

from .. import LOGGER

LOGGER = LOGGER.getChild('Engine')


def set_logger(logger: logging.Logger):
    global LOGGER
    LOGGER = logger

    algo_engine.LOGGER = logger.getChild('AlgoEngine')
    c_event_engine.EVENT_ENGINE.logger = logger.getChild('EventEngine')
    c_market_engine.LOGGER = logger.getChild('MarketEngine')
    trade_engine.LOGGER = logger.getChild('TradeEngine')


[docs] class Singleton(type): _instances = {} def __call__(cls, *args, **kwargs): if cls not in cls._instances: cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs) return cls._instances[cls]
from .c_event_engine import EVENT_ENGINE, TOPIC, TopicSet from .c_market_engine import MDS, MarketDataService, MarketDataMonitor, MonitorManager from .algo_engine import AlgoTemplate, ALGO_ENGINE, ALGO_REGISTRY from .trade_engine import DirectMarketAccess, Balance, PositionManagementService, Inventory, RiskProfile __all__ = [ 'LOGGER', 'EVENT_ENGINE', 'TOPIC', 'TopicSet', 'AlgoTemplate', 'ALGO_ENGINE', 'ALGO_REGISTRY', 'MDS', 'MarketDataService', 'MarketDataMonitor', 'MonitorManager', 'Singleton', 'DirectMarketAccess', 'Balance', 'PositionManagementService', 'Inventory', 'RiskProfile' ]