Esempio n. 1
0
 def future_hold_amount(self, symbol):
     """return:
     amount:总持仓量(张)
     contract_name:合约名
     """
     params = {'symbol':symbol, 'contract_type':cfg.get_future_contract_type()}
     url = cfg.get_url() + OKCoinBase.RESOURCES_URL['hold_amount']
     return self._request.get(url, params)[0]['amount']
Esempio n. 2
0
 def future_price_limit(self, symbol):
     """return:
     high :最高买价
     low :最低卖价
     """
     params = {'symbol':symbol, 'contract_type':cfg.get_future_contract_type()}
     url = cfg.get_url() + OKCoinBase.RESOURCES_URL['price_limit']
     return self._request.get(url, params)
Esempio n. 3
0
 def kline(self, symbol, dtype, size = 0, since = 0):
     params = {'symbol':symbol, 'type':dtype, 'size':size, 'since':since}
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
     url = cfg.get_url() + OKCoinBase.RESOURCES_URL['kline'].format('future_' if cfg.is_future() else '')
     #print(url, params)
     data = self._request.get(url, params) ## t o h l c v a
     for i in range(len(data)):
         data[i][0] = data[i][0]/1000
     return data
Esempio n. 4
0
 def depth(self, symbol, size=0, merge=0):
     """return:
     asks :卖方深度
     bids :买方深度
     """
     params = {'symbol':symbol, 'size':size, 'merge':merge}
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
     url = cfg.get_url() + OKCoinBase.RESOURCES_URL['depth'].format('future_' if cfg.is_future() else '')
     return self._request.get(url, params)
Esempio n. 5
0
 def batch_trade(self, symbol, orders_data):
     params = {
         'api_key': cfg.get_id(),
         'symbol': symbol,
         'orders_data':orders_data
     }
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
         params['lever_rate'] = 10
     res = OKCoinBase.RESOURCES_URL['batch_trade'].format('future_' if cfg.is_future() else '')
     return self._signed_request(params, res)
Esempio n. 6
0
 def future_price_limit(self, symbol):
     """return:
     high :最高买价
     low :最低卖价
     """
     params = {
         'symbol': symbol,
         'contract_type': cfg.get_future_contract_type()
     }
     url = cfg.get_url() + OKCoinBase.RESOURCES_URL['price_limit']
     return self._request.get(url, params)
Esempio n. 7
0
 def future_hold_amount(self, symbol):
     """return:
     amount:总持仓量(张)
     contract_name:合约名
     """
     params = {
         'symbol': symbol,
         'contract_type': cfg.get_future_contract_type()
     }
     url = cfg.get_url() + OKCoinBase.RESOURCES_URL['hold_amount']
     return self._request.get(url, params)[0]['amount']
Esempio n. 8
0
 def depth(self, symbol, size=0, merge=0):
     """return:
     asks :卖方深度
     bids :买方深度
     """
     params = {'symbol': symbol, 'size': size, 'merge': merge}
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
     url = cfg.get_url() + OKCoinBase.RESOURCES_URL['depth'].format(
         'future_' if cfg.is_future() else '')
     return self._request.get(url, params)
Esempio n. 9
0
 def batch_trade(self, symbol, orders_data):
     params = {
         'api_key': cfg.get_id(),
         'symbol': symbol,
         'orders_data': orders_data
     }
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
         params['lever_rate'] = 10
     res = OKCoinBase.RESOURCES_URL['batch_trade'].format(
         'future_' if cfg.is_future() else '')
     return self._signed_request(params, res)
Esempio n. 10
0
 def trades(self, symbol):
     """return:
     amount:交易数量
     date_ms:交易时间(毫秒)
     date:交易时间
     price:交易价格
     tid:交易ID
     type:交易类型
     """
     params = {'symbol':symbol}
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
     url = cfg.get_url() + OKCoinBase.RESOURCES_URL['trades'].format('future_' if cfg.is_future() else '')
     return self._request.get(url, params)
Esempio n. 11
0
 def orders_info(self, symbol, order_id):
     params = {
         'api_key': cfg.get_id(),
         'symbol': symbol,
         'order_id': order_id
     }
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
     res = OKCoinBase.RESOURCES_URL['orders_info'].format('future_' if cfg.is_future() else '')
     ret = self._signed_request(params, res)
     if ret['result'] == True:
         return ret['orders']
     else:
         return None
Esempio n. 12
0
 def trades(self, symbol):
     """return:
     amount:交易数量
     date_ms:交易时间(毫秒)
     date:交易时间
     price:交易价格
     tid:交易ID
     type:交易类型
     """
     params = {'symbol': symbol}
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
     url = cfg.get_url() + OKCoinBase.RESOURCES_URL['trades'].format(
         'future_' if cfg.is_future() else '')
     return self._request.get(url, params)
Esempio n. 13
0
 def future_cancel(self, symbol, order_id):
     """return:
     result:订单交易成功或失败(用于单笔订单)
     order_id:订单ID(用于单笔订单)
     success:成功的订单ID(用于多笔订单)
     error:失败的订单ID后跟失败错误码(用户多笔订单)
     """
     params = {
         'api_key': cfg.get_id(),
         'symbol': symbol,
         'order_id': order_id,
         'contract_type': cfg.get_future_contract_type()
     }
     res = OKCoinBase.RESOURCES_URL['cancel']
     return self._signed_request(params, res)
Esempio n. 14
0
 def orders_info(self, symbol, order_id):
     params = {
         'api_key': cfg.get_id(),
         'symbol': symbol,
         'order_id': order_id
     }
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
     res = OKCoinBase.RESOURCES_URL['orders_info'].format(
         'future_' if cfg.is_future() else '')
     ret = self._signed_request(params, res)
     if ret['result'] == True:
         return ret['orders']
     else:
         return None
Esempio n. 15
0
 def future_cancel(self, symbol, order_id):
     """return:
     result:订单交易成功或失败(用于单笔订单)
     order_id:订单ID(用于单笔订单)
     success:成功的订单ID(用于多笔订单)
     error:失败的订单ID后跟失败错误码(用户多笔订单)
     """
     params = {
         'api_key': cfg.get_id(),
         'symbol': symbol,
         'order_id': order_id,
         'contract_type': cfg.get_future_contract_type()
     }
     res = OKCoinBase.RESOURCES_URL['cancel']
     return self._signed_request(params, res)
Esempio n. 16
0
 def order_info(self,
                symbol,
                order_id,
                status,
                current_page=1,
                page_length=50):
     """params:
         status	String	否	查询状态 1:未完成的订单 2:已经完成的订单
         order_id	String	是	订单ID -1:查询指定状态的订单,否则查询相应订单号的订单
         current_page	String	否	当前页数
         page_length	String	否	每页获取条数,最多不超过50
     return:
     {
         orders:[{
             amount: 委托数量
             contract_name: 合约名称
             create_date: 委托时间
             deal_amount: 成交数量
             fee: 手续费
             order_id: 订单ID
             price: 订单价格
             price_avg: 平均价格
             status: 订单状态(0等待成交 1部分成交 2全部成交 -1撤单 4撤单处理中 5撤单中)
             symbol: btc_usd   ltc_usd    eth_usd    etc_usd    bch_usd
             type: 订单类型 1:开多 2:开空 3:平多 4: 平空
             unit_amount:合约面值
             lever_rate: 杠杆倍数  value:10\20  默认10 
         }]
         result:...
     }
     """
     params = {
         'api_key': cfg.get_id(),
         'symbol': symbol,
         'status': status,
         'order_id': order_id,
         'current_page': current_page,
         'page_length': page_length
     }
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
     res = OKCoinBase.RESOURCES_URL['order_info'].format(
         'future_' if cfg.is_future() else '')
     ret = self._signed_request(params, res)
     if ret['result'] == True:
         return ret['orders']
     else:
         return None
Esempio n. 17
0
 def ticker(self, symbol):
     """return:
     buy:买一价
     contract_id:合约ID
     high:最高价
     last:最新成交价
     low:最低价
     sell:卖一价
     unit_amount:合约面值
     vol:成交量(最近的24小时)
     """
     params = {'symbol':symbol}
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
     url = cfg.get_url() + OKCoinBase.RESOURCES_URL['ticker'].format('future_' if cfg.is_future() else '')
     return self._request.get(url, params)['ticker']
Esempio n. 18
0
 def kline(self, symbol, dtype, size=0, since=0):
     params = {
         'symbol': symbol,
         'type': dtype,
         'size': size,
         'since': since
     }
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
     url = cfg.get_url() + OKCoinBase.RESOURCES_URL['kline'].format(
         'future_' if cfg.is_future() else '')
     #print(url, params)
     data = self._request.get(url, params)  ## t o h l c v a
     for i in range(len(data)):
         data[i][0] = data[i][0] / 1000
     return data
Esempio n. 19
0
 def ticker(self, symbol):
     """return:
     buy:买一价
     contract_id:合约ID
     high:最高价
     last:最新成交价
     low:最低价
     sell:卖一价
     unit_amount:合约面值
     vol:成交量(最近的24小时)
     """
     params = {'symbol': symbol}
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
     url = cfg.get_url() + OKCoinBase.RESOURCES_URL['ticker'].format(
         'future_' if cfg.is_future() else '')
     return self._request.get(url, params)['ticker']
Esempio n. 20
0
 def future_explosive(self, symbol, status, current_page, page_number, page_length):
     """return:
     amount:委托数量(张)
     create_date:创建时间
     loss:穿仓用户亏损
     price:委托价格
     type:交易类型 1:买入开多 2:卖出开空 3:卖出平多 4:买入平空
     """
     params = {
         'api_key': cfg.get_id(),
         'symbol': symbol,
         'contract_type': cfg.get_future_contract_type(),
         'status': status,
         'current_page': current_page,
         'page_number': page_number,
         'page_length': page_length
     }
     res = OKCoinBase.RESOURCES_URL['explosive']
     return self._signed_request(params, res)
Esempio n. 21
0
 def order_info(self, symbol, order_id, status, current_page=1, page_length=50):
     """params:
         status	String	否	查询状态 1:未完成的订单 2:已经完成的订单
         order_id	String	是	订单ID -1:查询指定状态的订单,否则查询相应订单号的订单
         current_page	String	否	当前页数
         page_length	String	否	每页获取条数,最多不超过50
     return:
     {
         orders:[{
             amount: 委托数量
             contract_name: 合约名称
             create_date: 委托时间
             deal_amount: 成交数量
             fee: 手续费
             order_id: 订单ID
             price: 订单价格
             price_avg: 平均价格
             status: 订单状态(0等待成交 1部分成交 2全部成交 -1撤单 4撤单处理中 5撤单中)
             symbol: btc_usd   ltc_usd    eth_usd    etc_usd    bch_usd
             type: 订单类型 1:开多 2:开空 3:平多 4: 平空
             unit_amount:合约面值
             lever_rate: 杠杆倍数  value:10\20  默认10 
         }]
         result:...
     }
     """
     params = {
         'api_key': cfg.get_id(),
         'symbol': symbol,
         'status':status,
         'order_id':order_id,
         'current_page':current_page,
         'page_length':page_length
     }
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
     res = OKCoinBase.RESOURCES_URL['order_info'].format('future_' if cfg.is_future() else '')
     ret = self._signed_request(params, res)
     if ret['result'] == True:
         return ret['orders']
     else:
         return None
Esempio n. 22
0
 def future_explosive(self, symbol, status, current_page, page_number,
                      page_length):
     """return:
     amount:委托数量(张)
     create_date:创建时间
     loss:穿仓用户亏损
     price:委托价格
     type:交易类型 1:买入开多 2:卖出开空 3:卖出平多 4:买入平空
     """
     params = {
         'api_key': cfg.get_id(),
         'symbol': symbol,
         'contract_type': cfg.get_future_contract_type(),
         'status': status,
         'current_page': current_page,
         'page_number': page_number,
         'page_length': page_length
     }
     res = OKCoinBase.RESOURCES_URL['explosive']
     return self._signed_request(params, res)
Esempio n. 23
0
 def trade(self, symbol, price, amount, trade_type, match_price):
     """return:
     order_id : 订单ID
     result : true代表成功返回
     """
     params = {
         'api_key': cfg.get_id(),
         'symbol': symbol,
         'price': price,
         'amount': amount,
         'type': trade_type,
         'match_price': match_price
     }
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
         params['lever_rate'] = 10
     res = OKCoinBase.RESOURCES_URL['trade'].format('future_' if cfg.is_future() else '')
     ret = self._signed_request(params, res)
     if ret['result'] == True:
         return True ##ret['order_id']
     else:
         return False
Esempio n. 24
0
 def trade(self, symbol, price, amount, trade_type, match_price):
     """return:
     order_id : 订单ID
     result : true代表成功返回
     """
     params = {
         'api_key': cfg.get_id(),
         'symbol': symbol,
         'price': price,
         'amount': amount,
         'type': trade_type,
         'match_price': match_price
     }
     if cfg.is_future():
         params['contract_type'] = cfg.get_future_contract_type()
         params['lever_rate'] = 10
     res = OKCoinBase.RESOURCES_URL['trade'].format(
         'future_' if cfg.is_future() else '')
     ret = self._signed_request(params, res)
     if ret['result'] == True:
         return True  ##ret['order_id']
     else:
         return False
Esempio n. 25
0
    def future_position(self, symbol):
        """return:
        {
            force_liqu_price:预估爆仓价
            holding:[{
                buy_amount(double):多仓数量
                buy_available:多仓可平仓数量
                buy_price_avg(double):开仓平均价
                buy_price_cost(double):结算基准价
                buy_profit_real(double):多仓已实现盈余
                contract_id(long):合约id
                create_date(long):创建日期
                lever_rate:杠杆倍数
                sell_amount(double):空仓数量
                sell_available:空仓可平仓数量
                sell_price_avg(double):开仓平均价
                sell_price_cost(double):结算基准价
                sell_profit_real(double):空仓已实现盈余
                symbol:btc_usd   ltc_usd    eth_usd    etc_usd    bch_usd
                contract_type:合约类型
            }]
            result:...
        }


       or 4fix return:
       {
            holding:[{
                buy_amount:多仓数量
                buy_available:多仓可平仓数量 
                buy_bond:多仓保证金
                buy_flatprice:多仓强平价格
                buy_profit_lossratio:多仓盈亏比
                buy_price_avg:开仓平均价
                buy_price_cost:结算基准价
                buy_profit_real:多仓已实现盈余
                contract_id:合约id
                contract_type:合约类型
                create_date:创建日期
                sell_amount:空仓数量
                sell_available:空仓可平仓数量 
                sell_bond:空仓保证金
                sell_flatprice:空仓强平价格
                sell_profit_lossratio:空仓盈亏比
                sell_price_avg:开仓平均价
                sell_price_cost:结算基准价
                sell_profit_real:空仓已实现盈余
                symbol:btc_usd   ltc_usd    eth_usd    etc_usd    bch_usd
                lever_rate: 杠杆倍数
            }]
            result:...
        }
        """
        params = {
            'api_key': cfg.get_id(),
            'symbol': symbol,
            'contract_type':cfg.get_future_contract_type()
        }
        res = OKCoinBase.RESOURCES_URL['position' if cfg.is_future_mode_all() else 'position_4fix']
        ret = self._signed_request(params, res)
        if ret['result'] == True:
            return ret['holding'][0]
        else:
            log.err("future_position ret:%s"%ret)
            return None
Esempio n. 26
0
    def future_position(self, symbol):
        """return:
        {
            force_liqu_price:预估爆仓价
            holding:[{
                buy_amount(double):多仓数量
                buy_available:多仓可平仓数量
                buy_price_avg(double):开仓平均价
                buy_price_cost(double):结算基准价
                buy_profit_real(double):多仓已实现盈余
                contract_id(long):合约id
                create_date(long):创建日期
                lever_rate:杠杆倍数
                sell_amount(double):空仓数量
                sell_available:空仓可平仓数量
                sell_price_avg(double):开仓平均价
                sell_price_cost(double):结算基准价
                sell_profit_real(double):空仓已实现盈余
                symbol:btc_usd   ltc_usd    eth_usd    etc_usd    bch_usd
                contract_type:合约类型
            }]
            result:...
        }


       or 4fix return:
       {
            holding:[{
                buy_amount:多仓数量
                buy_available:多仓可平仓数量 
                buy_bond:多仓保证金
                buy_flatprice:多仓强平价格
                buy_profit_lossratio:多仓盈亏比
                buy_price_avg:开仓平均价
                buy_price_cost:结算基准价
                buy_profit_real:多仓已实现盈余
                contract_id:合约id
                contract_type:合约类型
                create_date:创建日期
                sell_amount:空仓数量
                sell_available:空仓可平仓数量 
                sell_bond:空仓保证金
                sell_flatprice:空仓强平价格
                sell_profit_lossratio:空仓盈亏比
                sell_price_avg:开仓平均价
                sell_price_cost:结算基准价
                sell_profit_real:空仓已实现盈余
                symbol:btc_usd   ltc_usd    eth_usd    etc_usd    bch_usd
                lever_rate: 杠杆倍数
            }]
            result:...
        }
        """
        params = {
            'api_key': cfg.get_id(),
            'symbol': symbol,
            'contract_type': cfg.get_future_contract_type()
        }
        res = OKCoinBase.RESOURCES_URL['position' if cfg.is_future_mode_all(
        ) else 'position_4fix']
        ret = self._signed_request(params, res)
        if ret['result'] == True:
            return ret['holding'][0]
        else:
            log.err("future_position ret:%s" % ret)
            return None