0
ফোকাস
1
অনুসারী

অ্যাসিঙ্ক্রোনাস সমস্যা, পাগলের মতো হয়ে যাচ্ছে

তৈরি: 2023-03-15 10:43:20, আপডেট করা হয়েছে:
comments   5
hits   1125

import pandas as pd from binance.client import AsyncClient from datetime import datetime, timedelta import aiohttp import 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

অ্যাসিনক্রোনাস Binance ক্লায়েন্ট আরম্ভ করা

async def init_client(): client = await AsyncClient.create(api_key=api_key, api_secret=api_secret)

return client

অ্যাসিনক্রোনাস কে-লাইন তথ্য প্রাপ্তি

async def get_klines(client, symbol, start_time, end_time, interval): klines = await client.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’], unit=‘ms’) df[‘close_time’] = pd.to_datetime(df[‘close_time’], unit=‘ms’) df.set_index(‘timestamp’, inplace=True) df.drop(columns=[‘close_time’, ‘ignore’], inplace=True) df = df.astype(‘float’) return df

অ্যাসিনক্রোনাস বন্ধ Binance ক্লায়েন্ট

async def close_client(client): await 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)

অ্যাসিনক্রোনাস প্রোগ্রাম চালান

if name == ‘main’: import asyncio asyncio.run(main())

M15-এর সমস্ত কন্ট্রাক্ট মুদ্রার দাম ও পতনের পরিসংখ্যান সংগ্রহ করা।

Log(df) এর পরে একটি ত্রুটি হয়েছে; অর্থাৎ সমস্ত প্রতীকের দামের মতো ডেটা আপডেট করার পরে একটি ত্রুটি হয়েছে:Traceback (most recent call last): File “”, line 1246, in init_ctx File “”, 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

চ্যাট জিপিটি-তেও কাজ হচ্ছে না, দাদুর কাছে সাহায্য চাই