異動の問題は狂っている

作者: リン・ハーンイジクル作成日:2023-03-15 10:43:20 更新日:

パンダを pd として輸入する from binance.client import アシンククライアント タイムデルタからデータタイムをインポートします 輸入する 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 ((klines, columns=[タイムスタンプ, オープン, ハイ, ロー, クローズ, ボリューム, クローズ_タイム, quote_asset_volume, number_of_trades, taker_buy_base_asset_volume, taker_buy_quote_asset_volume, ignore]) df[タイムスタンプ] = pd.to_datetime(df[タイムスタンプ],ユニット=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 ((浮遊) 返信 df

バイナンス クライアントをアシンクロンオフする

async def close_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_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 ランタイムウォーニング: ランタイムウォーニング: ランタイムウォーニング: ランタイムウォーニング: ランタイムウォーニング: ランタイムウォーニング: ランタイムウォーニング: ランタイムウォーニング: ランタイムウォーニング: ランタイムウォーニング: ランタイムウォーニング: ChatGptもうまくいっていないので大に助けを


もっと

もし複数のスレッドで収集し,それぞれのスレッドから収集されたデータを公共のオブジェクトにまとめ,すべてのスレッドが終了しているか判断します.

イジクル集合関数について 夢は2つのキーワードを挙げますか?

イジクル集合関数について 夢は2つのキーワードを挙げますか?

小草このライブラリを使用していないが,ステップ・バイ・ステップでデビューするのがベストである.また,直接並行して何百もの取引が並べられるのもあまり良くない.集積市場インターフェイスで自分で記録することは簡単である.

小草/fapi/v1/ticker/price ビンアンのドキュメントには