Example #1
0
 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
Example #2
0
    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
Example #3
0
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():
Example #4
0
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: