def GetAccount(api_key, api_secret):
     homiex = BrokerContractClient(entry_point=MyExchange.tread_url,
                                   api_key=api_key,
                                   secret=api_secret)
     raw_data = homiex.account()
     ret_data = {"data": []}
     if "USDT" in raw_data.keys():
         ret_data["data"].append({
             "currency":
             raw_data["USDT"]['tokenId'],
             "availableMargin":
             raw_data["USDT"]['availableMargin'],
             "positionMargin":
             raw_data["USDT"]['positionMargin'],
             "total":
             raw_data["USDT"]['total'],
             "orderMargin":
             raw_data["USDT"]['orderMargin']
         })
     if "BTC" in raw_data.keys():
         ret_data["data"].append({
             "currency":
             raw_data["BTC"]['tokenId'],
             "availableMargin":
             raw_data["BTC"]['availableMargin'],
             "positionMargin":
             raw_data["BTC"]['positionMargin'],
             "total":
             raw_data["BTC"]['total'],
             "orderMargin":
             raw_data["BTC"]['orderMargin']
         })
     ret_data["raw"] = raw_data
     return ret_data
    def GetOrder(api_key, api_secret, orders_id):

        homiex = BrokerContractClient(entry_point=MyExchange.tread_url,
                                      api_key=api_key,
                                      secret=api_secret)
        raw_data = homiex.get_order('LIMIT', order_id=orders_id)

        if 'error' in raw_data.keys():
            return {
                'error':
                json.dumps(raw_data['error'],
                           encoding="utf8",
                           ensure_ascii=False)
            }
        if 'orderId' in raw_data:
            ret_data = {
                "data": {
                    "id": raw_data['orderId'],
                    "amount": raw_data['origQty'],
                    "price": raw_data['price'],
                    "status": raw_data['status'],
                    "type": raw_data['side'],
                },
                'raw': raw_data
            }
        else:
            ret_data = {"data": {}}

        return ret_data
    def CancelOrder(api_key, api_secret, orders_id):
        homiex = BrokerContractClient(entry_point=MyExchange.tread_url,
                                      api_key=api_key,
                                      secret=api_secret)
        raw_data = homiex.order_cancel(order_id=orders_id)

        ret_data = {"data": True}
        try:
            result = raw_data['result'].encode('utf8')
        except:
            ret_data = {"data": False}
        ret_data['raw'] = raw_data
        return raw_data
    def GetDepth(api_key, api_secret, symbol):
        homiex = BrokerContractClient(entry_point=MyExchange.tread_url,
                                      api_key=api_key,
                                      secret=api_secret)

        raw_data = homiex.depth(symbol)
        ret_data = {"data": {"time": raw_data['time'], "asks": [], "bids": []}}
        for i in range(len(raw_data['bids'])):
            ret_data['data']['bids'].append(
                [raw_data['bids'][i][0], raw_data['bids'][i][1]])
        for i in range(len(raw_data['asks'])):
            ret_data['data']['asks'].append(
                [raw_data['asks'][i][0], raw_data['asks'][i][1]])
        return ret_data
    def GetOrders(api_key, api_secret, order_type='LIMIT'):
        homiex = BrokerContractClient(entry_point=MyExchange.tread_url,
                                      api_key=api_key,
                                      secret=api_secret)
        raw_data = homiex.open_orders(order_type=order_type)

        ret_data = {"data": []}
        if len(raw_data) > 0:
            for i in range(len(raw_data)):
                ret_data["data"].append({
                    "id": raw_data[i]['orderId'],
                    "amount": raw_data[i]['origQty'],
                    "price": raw_data[i]['price'],
                    "status": raw_data[i]['status'],
                    "type": raw_data[i]['side'],
                })
            ret_data['raw'] = raw_data
        return ret_data
 def IO(api_key, api_secret, path, params):
     homiex = BrokerContractClient(entry_point=MyExchange.tread_url,
                                   api_key=api_key,
                                   secret=api_secret)
     ret_data = {'data': {}}
     if path == '1':
         raw_data = homiex.get_positions()
         ret_data = {'data': raw_data}
     if path == '2':
         raw_data = homiex.order_new(symbol=params['sym'],
                                     clientOrderId=int(time.time()),
                                     side=params['order_type'],
                                     orderType='LIMIT',
                                     priceType='MARKET',
                                     quantity=params['amt'],
                                     price=params['rat'],
                                     leverage=params['lever'],
                                     timeInForce='GTC',
                                     triggerPrice=None)
         if 'orderId' in raw_data:
             ret_data = {"data": {'id': raw_data['orderId']}}
         else:
             ret_data = raw_data
     return ret_data
import time

from broker.client import BrokerContractClient
from broker.exceptions import BrokerRequestException, BrokerApiException

if __name__ == '__main__':

    proxies = {
        "http": '',
        "https": '',
    }

    entry_point = ''  # enter your open api entry point

    b = BrokerContractClient(api_key='',
                             secret='',
                             proxies=proxies,
                             entry_point=entry_point)

    try:
        print(b.time())

        print(int(time.time() * 1000))

        print(b.broker_info())

        print(b.depth('CBTC-PERP-REV'))

        print(b.trades('CBTC-PERP-REV'))

        print(b.klines('CBTC-PERP-REV'))