コード例 #1
0
ファイル: agent.py プロジェクト: jxf211/gevent-apidhcpagent
 def enable_dhcp_helper(self, network_id, network_rs=None):
     """Enable DHCP for a network that meets enabling criteria."""
     if network_rs:
         network = dhcp.NetModel(self.conf.use_namespaces, network_rs)
     else:
         LOG.err("payload resource no network_rs")
     if network:
         self.configure_dhcp_for_network(network)
コード例 #2
0
ファイル: coinex.py プロジェクト: jjmonster/trade
 def public_request(self, method, api_url, **payload):
     """request public url"""
     r_url = cfg.get_cfg('base_url') + api_url
     try:
         r = requests.request(method, r_url, params=payload, timeout=20)
         r.raise_for_status()
     except requests.exceptions.HTTPError as err:
         log.err(err)
         log.err(r.text)
     if r.status_code == 200:
         return r.json()
コード例 #3
0
 def public_request(self, method, api_url, **payload):
     """request public url"""
     r_url = cfg.get_cfg('base_url') + api_url
     try:
         r = requests.request(method, r_url, params=payload, timeout=20)
         r.raise_for_status()
     except requests.exceptions.HTTPError as err:
         log.err(err)
         log.err(r.text)
     if r.status_code == 200:
         return r.json()
コード例 #4
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def trade(self, pair, trade_type, price, amount, match_price): ##match_price mean limit(0) or market(1)
     try:
         if cfg.get_cfg_plat() == 'coinex':
             pass
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             return okb.trade(pair, trade_type, price, amount, match_price)
         else:
             pass
     except:
         log.err("Exception on sell!")
コード例 #5
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def sell_market(self, pair, price, amount):
        try:
            if cfg.get_cfg_plat() == 'coinex':
                return cet.sell_market(pair, amount, price)
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on sell!")
コード例 #6
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def buy_limit(self, pair, price, amount):
        try:
            if cfg.get_cfg_plat() == 'coinex':
                return cet.buy_limit(pair, amount, price)
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on buy!")
コード例 #7
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def sell_market(self, pair, price, amount):
        try:
            if cfg.get_cfg_plat() == 'coinex':
                return cet.sell_market(pair, amount, price)
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on sell!")
コード例 #8
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def trade(self, pair, trade_type, price, amount,
           match_price):  ##match_price mean limit(0) or market(1)
     try:
         if cfg.get_cfg_plat() == 'coinex':
             pass
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             return okb.trade(pair, trade_type, price, amount, match_price)
         else:
             pass
     except:
         log.err("Exception on sell!")
コード例 #9
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def buy_limit(self, pair, price, amount):
        try:
            if cfg.get_cfg_plat() == 'coinex':
                return cet.buy_limit(pair, amount, price)
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on buy!")
コード例 #10
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def get_future_position(self, pair):
     pos = defaultdict(lambda: None)
     try:
         if cfg.get_cfg_plat() == 'coinex':
             pass
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             pos = okb.future_position(pair)
         else:
             pass
     except:
         log.err("Exception on get_future_position!")
     return pos
コード例 #11
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def get_user_info(self):
     info = defaultdict(lambda: None)
     try:
         if cfg.get_cfg_plat() == 'coinex':
             pass
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             info = okb.user_info()
         else:
             pass
     except:
         log.err("Exception on get_user_info!")
     return info
コード例 #12
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def list_orders(self, pair, *params):
     data = []
     try:
         if cfg.get_cfg_plat() == 'coinex':
             data = cet.acquire_unfinished_order_list(pair)
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex' and len(params) == 2:
             data = okb.order_info(pair, *params)
         else:
             pass
     except:
         log.err("Exception on list_orders!")
     return data
コード例 #13
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def list_orders(self, pair, *params):
     data = []
     try:
         if cfg.get_cfg_plat() == 'coinex':
             data = cet.acquire_unfinished_order_list(pair)
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex' and len(params) == 2:
             data = okb.order_info(pair, *params)
         else:
             pass
     except:
         log.err("Exception on list_orders!")
     return data
コード例 #14
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def get_user_info(self):
     info = defaultdict(lambda: None)
     try:
         if cfg.get_cfg_plat() == 'coinex':
             pass
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             info = okb.user_info()
         else:
             pass
     except:
         log.err("Exception on get_user_info!")
     return info
コード例 #15
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def get_future_position(self, pair):
     pos = defaultdict(lambda: None)
     try:
         if cfg.get_cfg_plat() == 'coinex':
             pass
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             pos = okb.future_position(pair)
         else:
             pass
     except:
         log.err("Exception on get_future_position!")
     return pos
コード例 #16
0
ファイル: position.py プロジェクト: OspreyX/flow
 def append(self, pos, withinfo = False):
     dt = self.dte.dateonly
     pv = pos.first_at_or_before(dt)
     try:
         sz = int(pv.size)
         self.size   += sz
         self.traded += float(pv.book_cost_base)
     except:
         #TODO Log this error
         sz = '#NA'
         log.err("Position %s has not history at %s" % (pos,dt))
     if withinfo:
         fund = pos.fund
         self.positions.append({'fund': fund.code,
                                'name': fund.description,
                                'size': sz})
コード例 #17
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def get_price_all(self):
     prices = []
     data = None
     try:
         if cfg.get_cfg_plat() == 'coinex':
             data = cet.acquire_market_data_all()
             prices = data
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             pass
         else:
             pass
     except:
         log.err("Exception on get_price_all! data:%s" % data)
     return prices
コード例 #18
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def get_price_all(self):
     prices = []
     data = None
     try:
         if cfg.get_cfg_plat() == 'coinex':
             data = cet.acquire_market_data_all()
             prices = data
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             pass
         else:
             pass
     except:
         log.err("Exception on get_price_all! data:%s"%data)
     return prices
コード例 #19
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def cancel_order(self, pair, id):
        try:
            if cfg.get_cfg_plat() == 'coinex':
                status = cet.cancel_order_list(pair, id)
                #print(status)
                if status != 'cancel':
                    return False
                else:
                    return True
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on cancel_order pair:%s id:%d!" % (pair, id))
コード例 #20
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def cancel_order_all(self):
        try:
            if cfg.get_cfg_plat() == 'coinex':
                for i in self.get_all_pair():
                    status = self.cancel_order_pair(i)
                    if status == False:
                        log.err("Fail cancel order %s!" % i)
                        return False
                return True
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on cancel_order_all!")
コード例 #21
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def cancel_order_all(self):
        try:
            if cfg.get_cfg_plat() == 'coinex':
                for i in self.get_all_pair():
                    status = self.cancel_order_pair(i)
                    if status == False:
                        log.err("Fail cancel order %s!"%i)
                        return False
                return True
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on cancel_order_all!")
コード例 #22
0
ファイル: position.py プロジェクト: smhjn/flow
 def append(self, pos, withinfo=False):
     dt = self.dte.dateonly
     pv = pos.first_at_or_before(dt)
     try:
         sz = int(pv.size)
         self.size += sz
         self.traded += float(pv.book_cost_base)
     except:
         #TODO Log this error
         sz = '#NA'
         log.err("Position %s has not history at %s" % (pos, dt))
     if withinfo:
         fund = pos.fund
         self.positions.append({
             'fund': fund.code,
             'name': fund.description,
             'size': sz
         })
コード例 #23
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def cancel_order(self, pair, id):
        try:
            if cfg.get_cfg_plat() == 'coinex':
                status =  cet.cancel_order_list(pair, id)
                #print(status)
                if status != 'cancel':
                   return False
                else:
                   return True
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on cancel_order pair:%s id:%d!"%(pair, id))
コード例 #24
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def get_balance(self, symbol):
        balance = defaultdict(lambda: None)
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = cet.inquire_account_info()[symbol.upper()]
                balance['available'] = s2f(data['available'])
                balance['frozen'] = s2f(data['frozen'])
                balance['balance'] = data['available'] + data['frozen']
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on get_balance! data:%s" % data)
        return balance
コード例 #25
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def get_last_price(self, pair):
        price = 0
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = s2f(cet.acquire_market_data(pair))
                price = data['last']
            elif cfg.get_cfg_plat() == 'fcoin':
                #data = ft.get_market_ticker(pair)
                pass
            elif cfg.get_cfg_plat() == 'okex':
                data = okb.ticker(pair)
                price = data['last']
            else:
                pass

        except:
            log.err("Exception on get_last_price! data:%s" % data)
        return price
コード例 #26
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def get_last_price(self,pair):
        price = 0
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = s2f(cet.acquire_market_data(pair))
                price = data['last']
            elif cfg.get_cfg_plat() == 'fcoin':
                #data = ft.get_market_ticker(pair)
                pass
            elif cfg.get_cfg_plat() == 'okex':
                data = okb.ticker(pair)
                price = data['last']
            else:
                pass

        except:
            log.err("Exception on get_last_price! data:%s"%data)
        return price
コード例 #27
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def get_depth(self, pair):
     depth = defaultdict(lambda: None)
     data = None
     try:
         if cfg.get_cfg_plat() == 'coinex':
             data = cet.acquire_market_depth(pair)
             depth['buy'] = s2f(data.pop('bids'))
             depth['sell'] = s2f(data.pop('asks'))
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             data = okb.depth(pair)
             depth['buy'] = data.pop('bids')
             depth['sell'] = data.pop('asks')
         else:
             pass
     except:
         log.err("Exception on %s get_depth! data:%s"%(pair,data))
     return depth
コード例 #28
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def get_depth(self, pair):
     depth = defaultdict(lambda: None)
     data = None
     try:
         if cfg.get_cfg_plat() == 'coinex':
             data = cet.acquire_market_depth(pair)
             depth['buy'] = s2f(data.pop('bids'))
             depth['sell'] = s2f(data.pop('asks'))
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             data = okb.depth(pair)
             depth['buy'] = data.pop('bids')
             depth['sell'] = data.pop('asks')
         else:
             pass
     except:
         log.err("Exception on %s get_depth! data:%s" % (pair, data))
     return depth
コード例 #29
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def get_balance(self, symbol):
        balance = defaultdict(lambda: None)
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = cet.inquire_account_info()[symbol.upper()]
                balance['available'] = s2f(data['available'])
                balance['frozen'] = s2f(data['frozen'])
                balance['balance'] = data['available'] + data['frozen']
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on get_balance! data:%s"%data)
        return balance
コード例 #30
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def get_all_pair(self):
     pairs = []
     data = None
     try:
         if cfg.get_cfg_plat() == 'coinex':
             if False:
                 data = cet.acquire_market_list()
                 pairs = [item.lower() for item in data]
             else:
                 coin1 = [
                     'btc', 'ltc', 'eth', 'etc', 'bch', 'btg', 'xrp', 'eos'
                 ]
                 coin2 = ['usdt']
                 for i in coin1:
                     for j in coin2:
                         if i == j:
                             continue
                         else:
                             pairs.append(i + j)
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             if cfg.is_future():
                 coin1 = [
                     'btc', 'ltc', 'eth', 'etc', 'bch', 'btg', 'xrp', 'eos'
                 ]
                 coin2 = ['usd']
             else:
                 coin1 = ['btc', 'eth', 'etc', 'bch', 'ltc', 'okb']
                 coin2 = ['usdt', 'btc', 'eth', 'okb']
             for i in coin1:
                 for j in coin2:
                     if i == j:
                         continue
                     else:
                         pairs.append(i + "_" + j)
         else:
             pass
     except:
         log.err("Exception on get_all_pair! data:%s" % data)
     return pairs
コード例 #31
0
ファイル: cmdline.py プロジェクト: jjmonster/trade
 def buy_order(self):
     pair = cfg.get_pair()
     percentage = cfg.get_cfg('buy_percentage')
     price_less = cfg.get_cfg('buy_price_less')
     buy_type = cfg.get_cfg('buy_type')
     price_decimal_limit = cfg.get_cfg('price_decimal_limit')
     amount_decimal_limit = cfg.get_cfg('amount_decimal_limit')
     amount_limit = cfg.get_cfg('amount_limit')
     
     price = digits(fwk.get_last_price(cfg.get_pair())*(1.0-price_less),price_decimal_limit)
     av = fwk.get_balance(cfg.get_coin2())['available']
     amount = digits(av / price * percentage, amount_decimal_limit)
     if amount < amount_limit:
         log.err("Fail buy! amount=%f available=%f limit=%f"%(amount, av, amount_limit))
         return
     log.info("creating buy order... pair:%s price:%f amount:%f"%(cfg.get_pair(), price, amount))
     try:
         #fwk.buy(pair, price, amount, buy_type)
         log.info("success")
     except:
         log.err("Fail create buy order!")
コード例 #32
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def get_kline(self, pair, dtype, limit, since=0):
        kl = pd.DataFrame()
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = cet.acquire_K_line_data(pair, dtype, limit)
                if len(data) > 0:
                    for i in data:
                        i.pop()  ##remove the last market string
                kl = pd.DataFrame(s2f(data), columns=['t','o', 'c','h', 'l', 'v', 'a'])
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                data = okb.kline(pair, dtype, limit, since)
                kl = pd.DataFrame(data, columns = ['t', 'o', 'h', 'l', 'c', 'v', 'a'])
            else:
                pass

        except:
            log.err("Exception on get_kline! data:%s"%data)
        return kl
コード例 #33
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def cancel_order_pair(self, pair):
        try:
            if cfg.get_cfg_plat() == 'coinex':
                order_list = self.list_orders(pair)
                #print(order_list)
                for i in range(len(order_list)):
                    #print(order_list[i]['id'])
                    status = self.cancel_order(pair, order_list[i]['id'])
                    log.info(status)
                    if status == False:
                        log.err("Fail cancel order id:%d status:%s"%(i['id'], status))
                return status
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on cancel_order_pair!")
コード例 #34
0
ファイル: coinex.py プロジェクト: jjmonster/trade
    def signed_request(self, method, api_url, **payload):
        """request a signed url"""
        param = ''
        payload['access_id'] = cfg.get_cfg('id')
        payload['tonce'] = int(time.time()*1000)
        if payload:
            sort_pay = sorted(payload.items())
            for k in sort_pay:
                param += '&' + str(k[0]) + '=' + str(k[1])
            param = param.lstrip('&')
        sig_str = param + '&' + 'secret_key=' + cfg.get_cfg('secret_key')
        signature = self.get_signed_md5(sig_str)
            
        r_url = cfg.get_cfg('base_url') + api_url
        if method == 'GET' or method == 'DELETE':
            if param:
                r_url = r_url + '?' + param

        log.dbg(r_url)
        try:
            headers = cfg.get_cfg_header()
            headers['authorization'] = signature
            #log.dbg(headers)
        except:
            log.err("Fail load section from config file")
            return
        
        try:
            r = requests.request(method, r_url, headers = headers, json=payload,timeout=20)
            r.raise_for_status()
        except requests.exceptions.HTTPError as err:
            log.err(err)
            log.err(r.text)
        if r.status_code == 200:
            return r.json()
コード例 #35
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def cancel_order_pair(self, pair):
        try:
            if cfg.get_cfg_plat() == 'coinex':
                order_list = self.list_orders(pair)
                #print(order_list)
                for i in range(len(order_list)):
                    #print(order_list[i]['id'])
                    status = self.cancel_order(pair, order_list[i]['id'])
                    log.info(status)
                    if status == False:
                        log.err("Fail cancel order id:%d status:%s" %
                                (i['id'], status))
                return status
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on cancel_order_pair!")
コード例 #36
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def get_balance_all(self):
        balance = defaultdict(lambda: None)
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = cet.inquire_account_info()
                for i in data.items():
                    balance[i[0]]['available'] = s2f(i[1]['available'])
                    balance[i[0]]['frozen'] = s2f(i[1]['frozen'])
                    balance[i[0]]['balance'] = s2f(i[1]['available']) + s2f(i[1]['frozen'])
                #print(balance)
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on get_balance_all! data:%s"%data)

        return balance
コード例 #37
0
ファイル: cmdline.py プロジェクト: jjmonster/trade
 def sell_order(self):
     percentage = cfg.get_cfg('sell_percentage')
     price_more = cfg.get_cfg('sell_price_more')
     sell_type = cfg.get_cfg('sell_type')
     price_decimal_limit = cfg.get_cfg('price_decimal_limit')
     amount_decimal_limit = cfg.get_cfg('amount_decimal_limit')
     amount_limit = cfg.get_cfg('amount_limit')
     
     price = digits(fwk.get_last_price(cfg.get_pair())*(1.0+price_more),price_decimal_limit)
     av = fwk.get_balance(cfg.get_coin1())['available']
     amount = digits(av * percentage, amount_decimal_limit)
     if amount < amount_limit and av >= amount_limit:
         amount = amount_limit
     elif amount > av or av < amount_limit:
         log.err("Fail sell! amount=%f available=%f limit=%f"%(amount, av, amount_limit))
         return
     log.info("going to create sell order... pair:%s price:%f amount:%f"%(cfg.get_pair(), price, amount))
     try:
         #fwk.sell(pair, price, amount, sell_type)
         log.info("success")
     except:
         log.err("Fail create sell order!")
コード例 #38
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def get_balance_all(self):
        balance = defaultdict(lambda: None)
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = cet.inquire_account_info()
                for i in data.items():
                    balance[i[0]]['available'] = s2f(i[1]['available'])
                    balance[i[0]]['frozen'] = s2f(i[1]['frozen'])
                    balance[i[0]]['balance'] = s2f(i[1]['available']) + s2f(
                        i[1]['frozen'])
                #print(balance)
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on get_balance_all! data:%s" % data)

        return balance
コード例 #39
0
ファイル: framework.py プロジェクト: jjmonster/trade
    def get_kline(self, pair, dtype, limit, since=0):
        kl = pd.DataFrame()
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = cet.acquire_K_line_data(pair, dtype, limit)
                if len(data) > 0:
                    for i in data:
                        i.pop()  ##remove the last market string
                kl = pd.DataFrame(s2f(data),
                                  columns=['t', 'o', 'c', 'h', 'l', 'v', 'a'])
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                data = okb.kline(pair, dtype, limit, since)
                kl = pd.DataFrame(data,
                                  columns=['t', 'o', 'h', 'l', 'c', 'v', 'a'])
            else:
                pass

        except:
            log.err("Exception on get_kline! data:%s" % data)
        return kl
コード例 #40
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def get_all_pair(self):
     pairs = []
     data = None
     try:
         if cfg.get_cfg_plat() == 'coinex':
             if False:
                 data = cet.acquire_market_list()
                 pairs = [item.lower() for item in data]
             else:
                 coin1 = ['btc','ltc','eth','etc','bch','btg','xrp','eos']
                 coin2 = ['usdt']
                 for i in coin1:
                     for j in coin2:
                         if i == j:
                             continue
                         else:
                             pairs.append(i+j)                
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             if cfg.is_future():
                 coin1 = ['btc','ltc','eth','etc','bch','btg','xrp','eos']
                 coin2 = ['usd']
             else:
                 coin1 = ['btc','eth','etc','bch','ltc','okb']
                 coin2 = ['usdt', 'btc', 'eth','okb']
             for i in coin1:
                 for j in coin2:
                     if i == j:
                         continue
                     else:
                         pairs.append(i+"_"+j)
         else:
             pass
     except:
         log.err("Exception on get_all_pair! data:%s"%data)
     return pairs
コード例 #41
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def get_price(self, pair):
     price = defaultdict(lambda: None)
     data = None
     try:
         if cfg.get_cfg_plat() == 'coinex':
             data = cet.acquire_market_data(pair)
             #price['buy'] = s2f(data['buy'])    #buy 1
             #price['high'] = s2f(data['high'])  #24H highest price
             #price['last'] = s2f(data['last'])  #latest price
             #price['low'] = s2f(data['low'])    #24H lowest price
             #price['sell'] = s2f(data['sell'])  #sell 1
             #price['vol'] = s2f(data['vol'])    #24H volume
             price = s2f(data)
         elif cfg.get_cfg_plat() == 'fcoin':
             #data = ft.get_market_ticker(pair)
             pass
         elif cfg.get_cfg_plat() == 'okex':
             data = okb.ticker(pair)
             price = data
         else:
             pass
     except:
         log.err("Exception on get_price! data:%s" % data)
     return price
コード例 #42
0
ファイル: framework.py プロジェクト: jjmonster/trade
 def get_price(self, pair):
     price = defaultdict(lambda: None)
     data = None
     try:
         if cfg.get_cfg_plat() == 'coinex':
             data = cet.acquire_market_data(pair)
             #price['buy'] = s2f(data['buy'])    #buy 1
             #price['high'] = s2f(data['high'])  #24H highest price
             #price['last'] = s2f(data['last'])  #latest price
             #price['low'] = s2f(data['low'])    #24H lowest price
             #price['sell'] = s2f(data['sell'])  #sell 1
             #price['vol'] = s2f(data['vol'])    #24H volume
             price = s2f(data)
         elif cfg.get_cfg_plat() == 'fcoin':
             #data = ft.get_market_ticker(pair)
             pass
         elif cfg.get_cfg_plat() == 'okex':
             data = okb.ticker(pair)
             price = data
         else:
             pass                
     except:
         log.err("Exception on get_price! data:%s"%data)
     return price
コード例 #43
0
    def signed_request(self, method, api_url, **payload):
        """request a signed url"""
        param = ''
        payload['access_id'] = cfg.get_cfg('id')
        payload['tonce'] = int(time.time() * 1000)
        if payload:
            sort_pay = sorted(payload.items())
            for k in sort_pay:
                param += '&' + str(k[0]) + '=' + str(k[1])
            param = param.lstrip('&')
        sig_str = param + '&' + 'secret_key=' + cfg.get_cfg('secret_key')
        signature = self.get_signed_md5(sig_str)

        r_url = cfg.get_cfg('base_url') + api_url
        if method == 'GET' or method == 'DELETE':
            if param:
                r_url = r_url + '?' + param

        log.dbg(r_url)
        try:
            headers = cfg.get_cfg_header()
            headers['authorization'] = signature
            #log.dbg(headers)
        except:
            log.err("Fail load section from config file")
            return

        try:
            r = requests.request(method,
                                 r_url,
                                 headers=headers,
                                 json=payload,
                                 timeout=20)
            r.raise_for_status()
        except requests.exceptions.HTTPError as err:
            log.err(err)
            log.err(r.text)
        if r.status_code == 200:
            return r.json()
コード例 #44
0
ファイル: cmdline.py プロジェクト: jjmonster/trade
 def sell_market(self, pair, price, amount):
     try:
         fwk.sell_market(pair, price, amount) #comment this for test
     except:
         log.err("exception sell market!")