Contoh Websocket untuk mendapatkan pasaran mata wang Binance - Python

Penulis:Scottliyq, Dicipta: 2021-06-15 20:16:47, Dikemas kini:

Dengan FMZ hampir 2 bulan, berjalan beberapa strategi keuntungan yang baik, merasa perlu untuk membuat sumbangan kecil kepada komuniti, melihat contoh Websocket sekarang tidak banyak, menyumbang contoh langganan pelbagai aliran mendapatkan pelbagai mata wang pasaran Websocket, lebih mudah, mendapatkan pasaran, cetak pasaran dalam gelung json.

Antara muka yang digunakan dalam strategi kelas pegangan mata wang berbilang mata wang bertindak balas lebih cepat daripada yang lain, jika banyak mata wang yang diperdagangkan pada masa yang sama, perbezaannya masih besar, semoga dapat membantu.

#websocket 更新 行情
# {
#   "e":"bookTicker",     // 事件类型
#   "u":400900217,        // 更新ID
#   "E": 1568014460893,   // 事件推送时间
#   "T": 1568014460891,   // 撮合时间
#   "s":"BNBUSDT",        // 交易对
#   "b":"25.35190000",    // 买单最优挂单价格
#   "B":"31.21000000",    // 买单最优挂单数量
#   "a":"25.36520000",    // 卖单最优挂单价格
#   "A":"40.66000000"     // 卖单最优挂单数量
# }
def on_msg(msg) : #更新行情

    if msg is not None and len(msg)>0:
        bookTicker = json.loads(msg)
    else:
        # Log('book tick msg is none')
        return

    Log(bookTicker)

def main():
    SetErrorFilter("502:|503:|tcp|character|unexpected|network|timeout|WSARecv|Connect|GetAddr|no such|reset|http|received|EOF|reused|Unknown")
   
    trade_symbols = 'TRX,ZEC,DENT,BLZ,ENJ,ZIL,MANA,ONT,XMR,ICX,SC,THETA,CVC,BAT,STMX,VET,IOST,NEO,MTL,DASH,KNC,ZRX,IOTA'.split(',')

    ary_symbol_streams = []

    for i in range(len(trade_symbols)):
        symbol = trade_symbols[i].lower()
        stream_client = Dial(f"wss://fstream.binance.com/ws/{symbol}usdt@bookTicker|reconnect=true")
        ary_symbol_streams.append(stream_client)
    while (true):

        for item in ary_symbol_streams:
            #-2读取最新数据
            msg = item.read(-2)
            on_msg(msg)



Lebih lanjut

Kekuatan KuantitiPanggil (("wss://stream.binance.com:9443/stream?streams=btcusdt@aggTrade/ethusdt@aggTrade/axsusdt@aggTrade/ltcusdt@aggTrade/dogeusdt@aggTrade untuk menyambung semula=betul");

ScottliyqPada mulanya ditulis dengan cara ini, mudah dan mudah, tetapi jika semua duit syiling ditarik dalam satu barisan, ia tidak sesuai dengan strategi saya sendiri.

RumputLangganan WSS di Binance boleh dilakukan dengan satu url, di tengah menggunakan / sambungan

WusanSoalan: Adakah ada cara mudah untuk mendapatkan lebih daripada 100 senarai harga dalam masa nyata?