def md(ctx, source, low_latency): pass_ctx_from_parent(ctx) ctx.name = 'md_' + source ctx.source = source ctx.low_latency = low_latency ctx.logger = create_logger(source, ctx.log_level, pyyjj.location(pyyjj.mode.LIVE, pyyjj.category.MD, source, source, ctx.locator)) run_extension(ctx, EXTENSION_REGISTRY_MD)
def td(ctx, source, account, low_latency): pass_ctx_from_parent(ctx) ctx.name = 'td_' + source + '_' + account ctx.source = source ctx.account = account ctx.low_latency = low_latency ctx.logger = create_logger(source, ctx.log_level, pyyjj.location(pyyjj.mode.LIVE, pyyjj.category.TD, source, account, ctx.locator)) run_extension(ctx, EXTENSION_REGISTRY_TD)
def extension(ctx): pass_ctx_from_root(ctx) ctx.journal_util_location = pyyjj.location(pyyjj.mode.LIVE, pyyjj.category.SYSTEM, 'util', 'extension', ctx.locator) ctx.logger = create_logger('extension', ctx.log_level, ctx.journal_util_location) if not os.getenv('KF_NO_EXT'): pass else: print('Extension disabled by KF_NO_EXT') ctx.logger.warning('Trying to manage extension while disallowed by KF_NO_EXT')
def __init__(self, ctx): mode = pyyjj.mode.REPLAY if ctx.replay else pyyjj.mode.LIVE pywingchun.Watcher.__init__(self, ctx.locator, mode, ctx.low_latency) self.ctx = ctx self.ctx.logger = create_logger("watcher", ctx.log_level, self.io_device.home) location = pyyjj.location(mode, pyyjj.category.SYSTEM, 'watcher', 'watcher', ctx.locator) url = make_url(ctx.locator, location, ctx.name) self.data_proxy = DataProxy(url) self.accounts = {}
def journal(ctx, mode, category, group, name): pass_ctx_from_root(ctx) ctx.low_latency = False ctx.mode = mode ctx.category = category ctx.group = group ctx.name = name ctx.location = pyyjj.location(kfj.MODES[mode], kfj.CATEGORIES[category], group, name, ctx.locator) log_location = pyyjj.location(pyyjj.mode.LIVE, pyyjj.category.SYSTEM, 'util', 'journal', ctx.locator) ctx.logger = create_logger('journal', ctx.log_level, log_location) pyyjj.setup_log(log_location, 'journal')
def __init__(self, ctx): pyyjj.master.__init__(self, pyyjj.location(kfj.MODES['live'], kfj.CATEGORIES['system'], 'master', 'master', ctx.locator), ctx.low_latency) self.ctx = ctx self.ctx.master = self self.ctx.logger = create_logger("watcher", ctx.log_level, self.io_device.home) self.ctx.apprentices = {} ctx.calendar = Calendar(ctx) ctx.trading_day = ctx.calendar.trading_day self.publish_time(yjj_msg.TradingDay, ctx.calendar.trading_day_ns) ctx.master = self os_signal.handle_os_signals(self.exit_gracefully)
def strategy(ctx, group, name, path, low_latency, replay, session_id): pass_ctx_from_parent(ctx) ctx.group = group ctx.name = name ctx.path = path ctx.low_latency = low_latency if not replay else True ctx.replay = replay ctx.session_id = session_id mode = pyyjj.mode.REPLAY if ctx.replay else pyyjj.mode.LIVE ctx.logger = create_logger(name, ctx.log_level, pyyjj.location(mode, pyyjj.category.STRATEGY, group, name, ctx.locator)) ctx.strategy = Strategy(ctx) # keep strategy alive for pybind11 runner = Runner(ctx, mode) runner.add_strategy(ctx.strategy) if replay: ctx.category = 'strategy' replay_setup.setup(ctx, session_id, strategy, runner) runner.run()
def __init__(self, ctx): pyyjj.master.__init__( self, pyyjj.location(kfj.MODES['live'], kfj.CATEGORIES['system'], 'master', 'master', ctx.locator), ctx.low_latency) self.ctx = ctx self.ctx.master = self self.ctx.logger = create_logger("watcher", ctx.log_level, self.io_device.home) self.ctx.apprentices = {} # calendar_db_location = pyyjj.location(pyyjj.mode.LIVE, pyyjj.category.SYSTEM, 'etc', 'kungfu', ctx.locator) # ctx.calendar = pywingchun.Calendar(ctx.locator.layout_file(calendar_db_location, pyyjj.layout.SQLITE, 'holidays')) # ctx.current_trading_day = ctx.calendar.current_trading_day() ctx.calendar = Calendar(ctx) ctx.current_trading_day = ctx.calendar.current_trading_day() os_signal.handle_os_signals(self.exit_gracefully)
import kungfu.yijinjing.journal as kfj from kungfu.log import create_logger kf_home = os.getenv('KF_HOME') kfext_log_level = os.getenv('KF_LOG_LEVEL') if not kfext_log_level: kfext_log_level = 'error' kfext_logger = None if kf_home: kfext_log_locator = kfj.Locator(kf_home) kfext_log_location = pyyjj.location(pyyjj.mode.LIVE, pyyjj.category.SYSTEM, 'extensions', 'extensions', kfext_log_locator) kfext_logger = create_logger('extensions', kfext_log_level, kfext_log_location) else: kfext_logger = create_logger('extensions', kfext_log_level, None) class ExtensionRegistry: def __init__(self, ext_type): self._registry = {} self.ext_type = ext_type def register_extension(self, name, extension): kfext_logger.debug('Registering %s extension %s', self.ext_type, name) self._registry[name] = extension def has_extension(self, name): return name in self._registry