Ejemplo n.º 1
0
    def __init__(self, currency, mm_market, 
                        refer_markets,
                        hedge_market,
                        max_trade_amount,
                        min_trade_amount):
        super().__init__()

        assert(currency)
        assert(mm_market)
        assert(refer_markets)
        assert(hedge_market)
        assert(max_trade_amount)
        assert(min_trade_amount)

        self.currency = currency
        self.mm_market = mm_market
        self.refer_markets = refer_markets
        self.hedge_market = hedge_market
        self.max_trade_amount = max_trade_amount
        self.min_trade_amount = min_trade_amount

        self.data_lost_count = 0
        self.risk_protect_count = 10

        self.slappage = 0.005
        self.brokers = create_brokers([mm_market, hedge_market])

        self.mm_broker = self.brokers[mm_market]
        self.hedge_broker = self.brokers[hedge_market]

        self.cancel_all_orders(self.mm_market)

        logging.info('MarketMaker Setup complete')
Ejemplo n.º 2
0
Archivo: cli.py Proyecto: zhuyk/Xrypto
 def test_pri(self, args):
     if not args.markets:
         logging.error("You must use --markets argument to specify markets")
         sys.exit(2)
     pmarkets = args.markets.split(",")
     brokers = create_brokers(pmarkets)
     print(brokers)
     for market, broker in brokers.items():
         broker.get_balances()
Ejemplo n.º 3
0
    def __init__(self):
        self.brokers = create_brokers(['KKEX_BCH_BTC', 'Bitfinex_BCH_BTC'])

        self.btc_balance = 0
        self.bch_balance = 0

        self.init_btc = config.init_kk_btc + config.init_bf_btc
        self.init_bch = config.init_kk_bch + config.init_bf_bch

        self.first_run = True
        try:
            os.mkdir(self.out_dir)
        except:
            pass
Ejemplo n.º 4
0
    def __init__(self, base_pair, pair1, pair2, monitor_only=False):
        super().__init__()
        self.base_pair = base_pair or 'Viabtc_BCH_CNY'
        self.pair_1 = pair1 or 'Viabtc_BCH_BTC'
        self.pair_2 = pair2 or 'Viabtc_BTC_CNY'

        self.monitor_only = monitor_only

        t_api_key = config.t_Viabtc_API_KEY
        t_secret_token = config.t_Viabtc_SECRET_TOKEN

        self.brokers = create_brokers([self.base_pair, self.pair_1, self.pair_2])

        self.last_trade = 0
Ejemplo n.º 5
0
    def __init__(self,
                 mm_market='KKEX_BCH_BTC',
                 refer_markets=['Bitfinex_BCH_BTC', 'Bittrex_BCH_BTC'],
                 hedge_market='KKEX_BCH_BTC'):
        super().__init__()

        self.mm_market = mm_market
        self.refer_markets = refer_markets
        self.hedge_market = hedge_market

        self.brokers = create_brokers([mm_market, hedge_market])

        self.mm_broker = self.brokers[mm_market]
        self.hedge_broker = self.brokers[hedge_market]

        self.cancel_all_orders(self.mm_market)

        logging.info('MarketMaker Setup complete')
Ejemplo n.º 6
0
    def geo_sell(self, args):
        if not args.markets:
            logging.error("You must use --markets argument to specify markets")
            sys.exit(2)

        pmarkets = args.markets.split(",")
        brokers = create_brokers(pmarkets)

        if len(args.command) != 5:
            logging.error(
                'Usage: geo-sell start_price end_price quantity rate')
            sys.exit(2)

        start_price = Decimal(str(args.command[1]))
        end_price = Decimal(str(args.command[2]))
        quantity = Decimal(str(args.command[3]))
        rate = Decimal(str(args.command[4]))

        def geo_orders(start_price, end_price, quantity, rate):
            if rate <= 0:
                raise Exception('rate <= 0')
            current_price = start_price
            current_qty = quantity
            orders = []
            while current_price <= end_price:
                previous_price = current_price
                current_price = current_price * (1 + rate)
                withdraw_money = (current_price -
                                  previous_price) * current_qty / 2

                price = current_price.quantize(Decimal('0.00000001'))
                qty = (withdraw_money / price).quantize(Decimal('0.01'))
                current_qty -= qty

                data = {'price': price, 'qty': qty}
                orders.append(data)

            return orders

        for broker in brokers.values():
            orders = geo_orders(start_price, end_price, quantity, rate)
            for order in orders:
                broker.sell_limit(amount=order['qty'], price=order['price'])
Ejemplo n.º 7
0
    def __init__(self, mm_market='KKEX_BCH_BTC', 
                        refer_markets=['Bitfinex_BCH_BTC'],
                        hedge_market='Bitfinex_BCH_BTC'):
        super().__init__()

        self.mm_market = mm_market
        self.refer_markets = refer_markets
        self.hedge_market = hedge_market

        self.data_lost_count = 0
        self.risk_protect_count = 10

        self.slappage = 0.005
        self.brokers = create_brokers([mm_market, hedge_market])

        self.mm_broker = self.brokers[mm_market]
        self.hedge_broker = self.brokers[hedge_market]

        self.cancel_all_orders(self.mm_market)

        logging.info('MarketMaker Setup complete')
Ejemplo n.º 8
0
Archivo: cli.py Proyecto: zhuyk/Xrypto
    def get_balance(self, args):
        if not args.markets:
            logging.error("You must use --markets argument to specify markets")
            sys.exit(2)
        pmarkets = args.markets.split(",")
        brokers = create_brokers(pmarkets)

        snapshot = Snapshot()

        while True:
            total_btc = 0.
            total_bch = 0.
            for market in brokers.values():
                market.get_balances()
                print(market)
                total_btc += market.btc_balance
                total_bch += market.bch_balance
                snapshot.snapshot_balance(market.name[7:], market.btc_balance, market.bch_balance)

            snapshot.snapshot_balance('ALL', total_btc, total_bch)

            time.sleep(60*10)