def build(injector, chains): orderbook_keys = get_orderbook_keys(chains) cex_orderbook_keys = filter(lambda x: x.split(':')[0] == 'cex', orderbook_keys) cex_equity_pairs = map(lambda x: x.split(':')[1], cex_orderbook_keys) channel = CexChannel(injector) channel.equity_pairs = cex_equity_pairs return channel
def build_orderbook_spreads(chains, market_ctx): orderbook_keys = get_orderbook_keys(chains) orderbook_spreads = [] for orderbook_key in orderbook_keys: if not orderbook_key in market_ctx.orderbooks: continue orderbook = market_ctx.orderbooks[orderbook_key] ask = orderbook.asks[0]['price'] bid = orderbook.bids[0]['price'] spread = (ask - bid) / ((ask + bid) / 2) orderbook_spread = OrderbookSpread() orderbook_spread.orderbook_key = orderbook_key orderbook_spread.spread = spread orderbook_spreads.append(orderbook_spread) return orderbook_spreads
monkey.patch_all() import gevent from carbi.config import CarbiConfigKeys from carbi.dummy import build_wealthy_balance_ctx from carbi.loop import Looper from carbi.injector import Injector from carbi.module.trade import ProfitSeeker from carbi.module.trade.chain import Chains, get_orderbook_keys from carbi.module.tracker import MarketContextTracker from carbi.module.tracker.target import build_targets chains = Chains.load_from_file('./conf/chain/seeker.txt') injector = Injector.create('./conf/carbi.yaml') orderbook_keys = get_orderbook_keys(chains) targets = build_targets(orderbook_keys=orderbook_keys, with_okex_futures=True) market_tracker = MarketContextTracker(injector=injector, targets=targets) seeker = ProfitSeeker(injector=injector) logger = injector.logger def run(): try: run_internal() except Exception as e: logger.info('Skipped') gevent.sleep(10) def run_internal():
import requests.adapters from carbi.loop import Looper from carbi.injector import Injector from carbi.module.tracker import MarketContextTracker from carbi.module.handler.bigquery_streamer import BigQueryStreamer from carbi.module.handler.inspect_market_context import InspectMarketContextHandler from carbi.module.trade.chain import Chains, get_orderbook_keys from carbi.module.tracker.target import build_targets sess = requests.Session() adapter = requests.adapters.HTTPAdapter(pool_maxsize=100, max_retries=10) sess.mount('https://', adapter) chains = Chains.load_from_file('./conf/chain/inspector.txt') injector = Injector.create('./conf/carbi.yaml') orderbook_keys = get_orderbook_keys( Chains.load_from_file('./conf/chain/seeker.txt')) targets = build_targets(orderbook_keys=orderbook_keys, with_okex_futures=True) market_tracker = MarketContextTracker(injector=injector, targets=targets) logger = injector.logger channels = injector.channels channels.init_with_chains(chains) channels.start() handlers = [ InspectMarketContextHandler(injector=injector, chains=chains), BigQueryStreamer(injector=injector), ] def run(): try: