असमंजस की समस्या, पागल हो रही है

लेखक:इज़्ज़्ज़्ज़, बनाया गयाः 2023-03-15 10:43:20, अद्यतन किया गयाः

import pandas as pd डाउनलोड करें from binance.client import Async क्लाइंट from datetime import datetime, timedelta डेटाटाइम आयात करें आयात aiohttp json आयात करें def utc_to_local ((utc_dt):# को बीजिंग समय में परिवर्तित करें local_tz = datetime.timezone ((datetime.timedelta ((hours=8)) # पूर्वी आठ वें क्षेत्र में समय अंतर local_dt = utc_dt.replace ((tzinfo=datetime.timezone.utc).astimezone(local_tz) return local_dt

बिनेंस क्लाइंट को असिंक्रोनस इंस्टॉल करें

async def init_client(): क्लाइंट = प्रतीक्षा AsyncClient.create ((api_key=api_key, api_secret=api_secret)

return client

असिंक्रोनस K-लाइन डेटा प्राप्त करें

async def get_klines ((ग्राहक, प्रतीक, प्रारंभ_समय, अंत_समय, अंतराल): klines = wait client.futures_klines ((symbol=symbol, interval=interval, startTime=start_time.timestamp))) *1000, endTime=end_time.timestamp))) *1000) df = pd.DataFrame(कड़ियों, स्तंभों=[टाइमस्टैम्प, 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], इकाई=ms) df[close_time] = pd.to_datetime(df[close_time], इकाई=ms) df.set_index ((टाइमस्टैम्प, inplace=True) df.drop(columns=[close_time, ignore], inplace=True) df = df.astype ((फ्लोट) रिटर्न डीएफ

बिनेंस क्लाइंट को असिंक्रोनस बंद करें

async def close_client ((क्लाइंट): client.close_connection की प्रतीक्षा करें()

असिंक्रोनस मुख्य फ़ंक्शन निष्पादित करें

async def main (: client = await init_client (() # सभी USDT स्थायी अनुबंधों के लिए लेनदेन जोड़े प्राप्त करें exchange_info = await client.futures_exchange_info ((() symbols = [symbol_info [symbol] for symbol_info in exchange_info [symbols] if symbol_info [contractType] == PERPETUAL and symbol_info [quoteAsset] == USDT] # रिक्त डेटाफ्रेम बनाना 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)

असिंक्रोनस प्रोग्राम चलाएँ

यदिनाम == ‘मुख्य: आयात करनाasyncio.run(मुख्य))

इसका उद्देश्य सभी अनुबंधित मुद्राओं के लिए M15 के लिए गिरावट का आंकड़ा प्राप्त करना है।

Log ((df) एक बार के बाद त्रुटि होती है; यानी एक बार सभी प्रतीकों के मूल्य आदि डेटा को अपडेट करने के बाद त्रुटि होती हैः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 फ़ाइल , line 147, in TypeError: Object of type coroutine is not JSON serializable sys:1: RuntimeWarning: coroutine ChatGpt ने भी इसे ठीक नहीं किया है, मदद के लिए दादा जी से पूछें


अधिक

नहीं अगरकई धागे एकत्र किए जा सकते हैं, प्रत्येक धागे के लिए एकत्र किए गए डेटा को एक सार्वजनिक वस्तु में रखा जा सकता है; और फिर यह निर्धारित किया जा सकता है कि सभी धागे समाप्त हो गए हैं या नहीं।

इज़्ज़्ज़्ज़क्या सपने में एक या दो कुंजी शब्द आते हैं?

इज़्ज़्ज़्ज़क्या सपने में एक या दो कुंजी शब्द आते हैं?

घासमैंने इस लाइब्रेरी का उपयोग नहीं किया है, लेकिन चरण-दर-चरण डीबगिंग करना सबसे अच्छा है। इसके अलावा, सीधे सौ लेनदेन जोड़ना भी अच्छा नहीं है। संचयी बाजार इंटरफ़ेस के साथ खुद को रिकॉर्ड करना आसान है।

घास/fapi/v1/ticker/price