0

我可以使用下面的代码使用 python 连接到 bitmex websocket。

'''

from bitmex_websocket import BitMEXWebsocket
import logging
from time import sleep


# Basic use of websocket.
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://ws.testnet.bitmex.com/realtime", symbol="XBTUSD",
                         api_key=bitmex_api_key_test, api_secret=bitmex_api_secret_test)

    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)


def setup_logger():
    # 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


if __name__ == "__main__":
    run()

'''

它将每 10 秒创建一个包含新信息的连续输出。第一秒的示例输出如下所示(对大量文本表示歉意)。

2022-01-24 14:52:55,684 - bitmex_websocket - 信息 - 连接到 wss://ws.testnet.bitmex.com/realtime?subscribe=execution:XBTUSD,instrument:XBTUSD,margin,order:XBTUSD,orderBookL2:XBTUSD ,position:XBTUSD,quote:XBTUSD,trade:XBTUSD 2022-01-24 14:52:55,684 - bitmex_websocket - INFO - 连接到 wss://ws.testnet.bitmex.com/realtime?subscribe=execution:XBTUSD,instrument :XBTUSD,margin,order:XBTUSD,orderBookL2:XBTUSD,position:XBTUSD,quote:XBTUSD,trade:XBTUSD 2022-01-24 14:52:55,687 - bitmex_websocket - INFO - 使用 API 密钥进行身份验证。2022-01-24 14:52:55,687 - bitmex_websocket - 信息 - 使用 API 密钥进行身份验证。2022-01-24 14:52:56,695 - bitmex_websocket - 信息 - 已连接到 WS。2022-01-24 14:52:56,695 - bitmex_websocket - 信息 - 已连接到 WS。2022-01-24 14:52:57,701 - bitmex_websocket - 信息 - 获得所有市场数据。开始。2022-01-24 14:52:57,701 - bitmex_websocket - 信息 - 获得所有市场数据。开始。2022-01-24 14:52:57,709 - 根 - 信息 - 工具数据:{'symbol': 'XBTUSD', 'rootSymbol': 'XBT', 'state': 'Open', 'typ': 'FFWCSX' , 'listing': '2016-05-04T12:00:00.000Z', 'front': '2016-05-04T12:00:00.000Z', 'expiry': None, 'settle': None, 'listedSettle' :无,'relistInterval':无,'inverseLeg':'','sellLeg':'','buyLeg':'','optionStrikePcnt':无,'optionStrikeRound':无,'optionStrikePrice':无,'optionMultiplier ':无,'positionCurrency':'USD','基础':'XBT','quoteCurrency':'USD','underlyingSymbol'

但是,我想使用这些数据来计算一些技术指标,并创建买卖信号。如何存储包含最高、最低、开盘和收盘蜡烛价格的实时 websocket 数据(即在不断更新的数据框中)以执行进一步计算?

谢谢!

4

0 回答 0