python sử dụng asyncio http để lấy dữ liệu thị trường

Tác giả:Nóbô, Ngày: 2022-02-02 17:21:06
Tags:

Sự đồng bộ thực sự, thực tế là có được thị trường chỉ cần sử dụng sự đồng bộ này, sau khi có tín hiệu, các đồng tiền được điều khiển bởi sự kiện tương ứng với các giao diện đồng bộ được đóng gói trên nền tảng. Cần python 3.61 và cài đặt thư viện tương ứng


'''backtest
start: 2021-11-04 00:00:00
end: 2022-02-01 00:00:00
period: 1h
basePeriod: 15m
'''

import time
import asyncio
from aiohttp import ClientSession
import time
import datetime
global tasks
tasks = []

async def fetch_exchangeinfo():
    exchangeinfo="https://fapi.binance.com//fapi/v1/exchangeInfo"
    async with ClientSession() as session:
        async with session.get(exchangeinfo) as response:
            result=await response.read()
            Log(result.text, time.time())
            return result
            

async def fetch_depth(symbol,limit):
    symbol_depth="https://fapi.binance.com//fapi/v1/depth?symbol="+str(symbol)+"&limit="+str(limit)
    async with ClientSession() as session:
        async with session.get(symbol_depth) as response:
            result=await response.read()
            Log(result.text, time.time())
            return result
            

async def fetch_klines(symbol,interval,limit):
    symbol_kline="https://fapi.binance.com//fapi/v1/klines?symbol="+str(symbol)+"&interval="+str(interval)+"&limit="+str(limit)
    async with ClientSession() as session:
        async with session.get(symbol_kline) as response:
            result = await response.read()
            Log(symbol,result, time.time())
            return result
           
async def fetch_all_ticker():
    all_symbol_ticker = "https://fapi.binance.com/fapi/v1/ticker/price"
    async with ClientSession() as session:
        async with session.get(all_symbol_ticker) as response:
            result = await response.read()
            Log(result.text, time.time())
            return result
            

def main():
    while True:
        Log(datetime.datetime.now(),'开始')
        symbol_list=['BTCUSDT','ETHUSDT','BNBUSDT','ETCUSDT','EOSUSDT','SANDUSDT','XRPUSDT','ADAUSDT','GALAUSDT','IOTXUSDT','BNBUSDT','MATICUSDT']
        for i in range(12):
            task = asyncio.ensure_future(fetch_klines(symbol_list[i],'15m',500))
            tasks.append(task)
        loop = asyncio.get_event_loop()
        result = loop.run_until_complete(asyncio.gather(*tasks))
        Log(datetime.datetime.now(),'完成')
        Sleep(1000)

    

Thêm nữa

Thiên đàng và tài sảnĐiều đó có nghĩa gì?