Vấn đề không đồng bộ, điên rồ.

Tác giả:Đúng rồi., Tạo: 2023-03-15 10:43:20, Cập nhật:

import pandas as pd from binance.client import AsyncClient from datetime import datetime, timedelta import aiohttp nhập json def utc_to_local ((utc_dt):# chuyển sang giờ Bắc Kinh local_tz = datetime.timezone ((datetime.timedelta ((hours=8)) local_dt = utc_dt.replace ((tzinfo=datetime.timezone.utc).astimezone ((local_tz)) return local_dt

Tạo ban đầu khách hàng Binance không đồng bộ

async def init_client ((): khách hàng = chờ AsyncClient.create ((api_key=api_key, api_secret=api_secret)

return client

Nhập dữ liệu K-line đồng bộ

async def get_klines ((client, symbol, start_time, end_time, interval): klines = chờ khách hàng.futures_klines ((symbol=symbol, interval=interval, startTime=start_time.timestamp() *1000, endTime=end_time.timestamp() *1000) df = pd.DataFrame ((klines, columns=[timestamp, open, high, low, close, volume, close_time, quote_asset_volume, number_of_trades, taker_buy_base_asset_volume, taker_buy_quote_asset_volume, ignore]) df[timestamp] = pd.to_datetime(df[timestamp], đơn vị=ms) df[close_time] = pd.to_datetime(df[close_time], đơn vị=ms) df.set_index ((timestamp, inplace=True) df.drop(columns=[close_time, ignore], inplace=True) df = df.astype (( float) trả về df

Tắt đồng bộ khách hàng Binance

async def close_client ((client): chờ khách hàng.close_connection()

Hoạt động chủ yếu không đồng bộ

Async def main (: client = await init_client (()) # Nhận tất cả các cặp giao dịch USDT hợp đồng vĩnh viễn exchange_info = chờ khách hàng.futures_exchange_info symbols = [symbol_info [symbol] for symbol_info in exchange_info [symbols] if symbol_info [contractType] == PERPETUAL and symbol_info [quoteAsset] == USDT # Tạo DataFrame trống df = pd.DataFrame ((columns=[Symbol,Open,High,Low,Close,Change,Volume]) df.set_index ((Symbol, inplace=True)

# 将所有交易对添加到 DataFrame 中
for symbol in symbols:
    df.loc[symbol] = [None] * len(df.columns)
# 遍历所有交易对
for symbol in symbols:
    # 设置起止时间
    start_time = datetime.utcnow() - timedelta(minutes=16)#开始时间为16分钟前
    end_time = datetime.utcnow()
    try:
   # 获取M15k线
        current_klines = await get_klines(client, symbol, end_time - timedelta(minutes=15), end_time, '15m')
    except Exception as e:
        Log(f"An error occurred: {e}")
        current_klines = []
    # 将数据存入 DataFrame
   # 更新对应的行
    df.loc[symbol, 'Open'] = current_klines['open'].iloc[-1]
    df.loc[symbol, 'High'] = current_klines['high'].iloc[-1]
    df.loc[symbol, 'Low'] = current_klines['low'].iloc[-1]
    df.loc[symbol, 'Close'] = current_klines['close'].iloc[-1]
    df.loc[symbol, 'Change'] = current_change
    df.loc[symbol, 'Volume'] = current_klines['volume'].iloc[-1]

# 关闭客户端
Log(df)
await close_client(client)

Chạy các chương trình không đồng bộ

nếutên == ‘chính: nhập khẩu asyncioasyncio.run(chủ))

Mục đích là để có được dữ liệu giảm giá của tất cả các đồng tiền hợp đồng đối với M15.

Log ((df) sau một lần sẽ bị lỗi; tức là sau khi cập nhật một lần tất cả các giá cả của các biểu tượng và dữ liệu khác sẽ bị lỗi:Traceback (most recent call last): File , line 1246, ininit_ctxFile , line 147, in TypeError: Object of type coroutine is not JSON serializable sys:1: RuntimeWarning: coroutine main was never awaited RuntimeWarning: Enable tracemalloc to get the object allocation traceback main không bao giờ được chờ đợi main không bao giờ được chờ đợi main không bao giờ được chờ đợi main không bao giờ được chờ đợi main không bao giờ được chờ đợi main không bao giờ được chờ đợi main không bao giờ được chờ đợi main không bao giờ được chờ đợi main không bao giờ được chờ đợi main không bao giờ được chờ đợi main không bao giờ được chờ đợi main không bao giờ được chờ đợi main không bao giờ được chờ đợi main không bao giờ được chờ đợi ChatGpt cũng không giải quyết được vấn đề này.


Thêm nữa

Không nếuBạn có thể thu thập thông qua nhiều chuỗi, đưa dữ liệu thu thập được từ mỗi chuỗi vào một đối tượng công cộng; và sau đó đánh giá tất cả các chuỗi có kết thúc hay không.

Đúng rồi.Có phải bạn luôn nhắc đến một hoặc hai từ khóa trong giấc mơ về hàm tích lũy?

Đúng rồi.Có phải bạn luôn nhắc đến một hoặc hai từ khóa trong giấc mơ về hàm tích lũy?

Cỏ nhỏKhông sử dụng thư viện này, nhưng tốt nhất là chỉnh sửa từng bước. Ngoài ra, việc trực tiếp đồng bộ hàng trăm giao dịch cũng không tốt.

Cỏ nhỏ/fapi/v1/ticker/price tài liệu của Binance có