コード例 #1
0
def run():
    logger = setup_logger()

    # Instantiating the WS will make it connect. Be sure to add an auth method. You can use login/password
    # or api_key/api_secret.
    ws = BitMEXWebsocket(endpoint="https://testnet.bitmex.com/api/v1", symbol="XBT24H",
                         login="******", password="******", api_key=None, api_secret=None)

    logger.info("Instrument data: %s" % ws.get_instrument())

    # Run forever
    while(ws.ws.sock.connected):
        logger.info("Ticker: %s" % ws.get_ticker())
        logger.info("Funds: %s" % ws.funds())
        logger.info("Market Depth: %s" % ws.market_depth())
        logger.info("Recent Trades: %s\n\n" % ws.recent_trades())
        sleep(10)
コード例 #2
0
ファイル: main.py プロジェクト: SlimBadBoy/api-connectors
def run():
    logger = setup_logger()

    # Instantiating the WS will make it connect. Be sure to add your api_key/api_secret.
    ws = BitMEXWebsocket(endpoint="https://testnet.bitmex.com/api/v1", symbol="XBTUSD",
                         api_key=None, api_secret=None)

    logger.info("Instrument data: %s" % ws.get_instrument())

    # Run forever
    while(ws.ws.sock.connected):
        logger.info("Ticker: %s" % ws.get_ticker())
        if ws.config['api_key']:
            logger.info("Funds: %s" % ws.funds())
        logger.info("Market Depth: %s" % ws.market_depth())
        logger.info("Recent Trades: %s\n\n" % ws.recent_trades())
        sleep(10)
コード例 #3
0
def run():
    logger = setup_logger()

    # Instantiating the WS will make it connect. Be sure to add your api_key/api_secret.
    ws = BitMEXWebsocket(endpoint="https://testnet.bitmex.com/api/v1", symbol="XBTUSD",
                         api_key=None, api_secret=None)

    logger.info("Instrument data: %s" % ws.get_instrument())

    # Run forever
    while(ws.ws.sock.connected):
        logger.info("Ticker: %s" % ws.get_ticker())
        if ws.api_key:
            logger.info("Funds: %s" % ws.funds())
        logger.info("Market Depth: %s" % ws.market_depth())
        logger.info("Recent Trades: %s\n\n" % ws.recent_trades())
        sleep(10)
コード例 #4
0
ファイル: main.py プロジェクト: jnst/bitmex-ws-bot
def run():
    logger = setup_logger()

    config = configparser.ConfigParser()
    config.read('config/config.ini')

    ws = BitMEXWebsocket(endpoint=config['bitmex']['endpoint'], symbol="XBTUSD",
                         api_key=config['bitmex']['api_key'], api_secret=config['bitmex']['api_secret'])

    logger.info("Instrument data: %s" % ws.get_instrument())

    # Run forever
    while(ws.ws.sock.connected):
        logger.info("Ticker: %s" % ws.get_ticker())
        if ws.api_key:
            logger.info("Funds: %s" % ws.funds())
        logger.info("Market Depth: %s" % ws.market_depth())
        logger.info("Recent Trades: %s\n\n" % ws.recent_trades())
        sleep(10)
コード例 #5
0
    def get(self, apikey):
        acc = User.query.filter_by(api_public=apikey).first()
        if not acc:
            return create_error_response(
                404, "Account does not exist",
                "Account with api-key '{}' does not exist.".format(apikey))
        if not authorize(acc, request):
            return create_error_response(401, "Unauthorized",
                                         "No API-key or wrong API-key")

        ws = BitMEXWebsocket(endpoint="https://testnet.bitmex.com/api/v1",
                             symbol="",
                             api_key=acc.api_public,
                             api_secret=request.headers["api_secret"])
        balance = ws.funds()

        body = MasonControls()
        body.add_control_account(apikey)
        body.add_control_transactionhistory(apikey)
        return Response(body, status=200, mimetype=MASON)
コード例 #6
0
def run():
    logger = setup_logger()

    # Instantiating the WS will make it connect. Be sure to add your api_key/api_secret.
    ws = BitMEXWebsocket(
        endpoint="wss://testnet.bitmex.com/realtime",
        symbol="XBTUSD",
        api_key="wwvS30igJDo6Ksxa0h2EP1Eq",
        api_secret="-DOHRIUObpSQilqyr2y18YcTRi5NWFIV95du4i8rG4VveOBI")

    logger.info("Instrument data: {}".format(ws.get_instrument()))

    # Run forever
    while (ws.ws.sock.connected):
        logger.info("Ticker: %s" % ws.get_ticker())
        if ws.config['api_key']:
            logger.info("Funds: %s" % ws.funds())
        logger.info("Market Depth: %s" % ws.market_depth())
        logger.info("Recent Trades: %s\n\n" % ws.recent_trades())
        sleep(10)
コード例 #7
0
def run():
    logger = setup_logger()

    # Instantiating the WS will make it connect. Be sure to add an auth method. You can use login/password
    # or api_key/api_secret.
    ws = BitMEXWebsocket(endpoint="https://testnet.bitmex.com/api/v1",
                         symbol="XBT24H",
                         login="******",
                         password="******",
                         api_key=None,
                         api_secret=None)

    logger.info("Instrument data: %s" % ws.get_instrument())

    # Run forever
    while (ws.ws.sock.connected):
        logger.info("Ticker: %s" % ws.get_ticker())
        logger.info("Funds: %s" % ws.funds())
        logger.info("Market Depth: %s" % ws.market_depth())
        logger.info("Recent Trades: %s\n\n" % ws.recent_trades())
        sleep(10)
コード例 #8
0
ファイル: bitmex_etc.py プロジェクト: confiself/highfre
class BitMexWS(object):
    """
    适合订阅数据
    """

    def __init__(self, api_key=None, api_secret=None, symbol="XBTUSD"):
        endpoint = "https://testnet.bitmex.com/api/v1"
        if api_key:
            endpoint = "https://www.bitmex.com/api/v1"
        self.ws = BitMEXWebsocket(endpoint=endpoint,
                                  symbol=symbol,
                                  api_key=api_key,
                                  api_secret=api_secret)

    def run(self):
        logger = self.setup_logger()
        # Instantiating the WS will make it connect. Be sure to add your api_key/api_secret.

        logger.info("Instrument data: %s" % self.ws.get_instrument())

        # Run forever
        while self.ws.ws.sock.connected:
            logger.info("Ticker: %s" % self.ws.get_ticker())
            if self.ws.api_key:
                logger.info("Funds: %s" % self.ws.funds())
            logger.info("Market Depth: %s" % self.ws.market_depth())
            logger.info("Recent Trades: %s\n\n" % self.ws.recent_trades())
            sleep(10)

    def setup_logger(self):
        # Prints logger info to terminal
        logger = logging.getLogger()
        logger.setLevel(logging.INFO)  # Change this to DEBUG if you want a lot more info
        ch = logging.StreamHandler()
        # create formatter
        formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
        # add formatter to ch
        ch.setFormatter(formatter)
        logger.addHandler(ch)
        return logger
コード例 #9
0
ファイル: main.py プロジェクト: lawncegoh/BitMex-Test
class Main():
    def __init__(self):
        self.ws = BitMEXWebsocket(
            endpoint="wss://www.bitmex.com/realtime",
            symbol="XBTUSD",
            api_key='68_LZNeK1m7TEwnksVTe_7ig',
            api_secret='wKJXpjr6Y28BNDF4G97TBevkzLG0HVOurFDBn2dx42Sf_Aga')

        self.client = MongoClient('mongodb://localhost:27017/')
        self.db = self.client.main_database

        self.order_book = self.db.orderbook
        self.position = self.db.position
        self.balance = self.db.balance

        #uncomment these 3 methods to check out the db

        #to see orderbooks
        #self.check_db(self.find_all_orderbook())

        #to see position
        #self.check_db(self.find_all_positions())

        #to see balance
        #self.check_db(self.find_all_balance())

        self.__on_open()
        self.fetch_data()

    def check_db(self, objects):
        for object in objects:
            self.logger(object)

    def logger(self, object):
        print(object)

    def find_all_positions(self):
        # Returns a list
        return self.position.find({})

    def find_all_balance(self):
        # Returns a list
        return self.balance.find({})

    def find_all_orderbook(self):
        # Returns a list
        return self.order_book.find({})

    def list_db_collections(self):
        return self.db.list_collection_names()

    def __on_open(self):
        # Called when the WS opens.
        self.logger("Websocket Opened.")

    def __on_close(self):
        # Called on websocket close.
        self.logger('Websocket Closed')

    def fetch_data(self):
        # Balance
        funds = self.ws.funds()

        # Position
        positions = self.ws.recent_trades()

        # Order Book
        orderbook = self.ws.market_depth()

        self.__on_close(funds, positions, orderbook)

    def __on_open(self):
        '''Called when the WS opens.'''
        self.logger("Websocket Opened.")

    def __on_close(self, funds, positions, orderbook):
        '''Called on websocket close.'''

        # --- SAVE TO DB ---- #

        self.balance.insert_one(funds)

        for position in positions:
            self.position.insert_one(position)

        for trade in orderbook:
            self.order_book.insert_one(trade)

        # --- SAVE TO DB ---- #

        self.logger('Websocket Closed')