Import pandas als pd von binance.client Import AsyncClient von Datetime importieren Datetime, Timedelta Import aiohttp Import von json def utc_to_local ((utc_dt):# Umgewandelt in Pekingzeit local_tz = datetime.timezone ((datetime.timedelta ((hours=8)) # östliche Zeitzone acht local_dt = utc_dt.replace ((tzinfo=datetime.timezone.utc).astimezone ((local_tz)) zurück local_dt
async def init_client (): Client = warten AsyncClient.create ((api_key=api_key, api_secret=api_secret)
return client
Async def get_klines ((Client, Symbol, Startzeit, Endzeit, Intervall):
klines = warten client.futures_klines ((symbol=symbol, interval=interval, startTime=start_time.timestamp))) *1000, endTime=end_time.timestamp))) *1000)
df = pd.DataFrame(Klinien, Spalten=[
Async def close_client ((Client): Warten Sie auf den Client.close_connection ((()
Async def main (:
Client = warten auf init_client
# Zugriff auf alle USDT-Permanenten-Kontrakte
exchange_info = await client.Futures_exchange_info ((()
symbols = [symbol_info [
# 将所有交易对添加到 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)
wennName == ‘Haupt
Log ((df) ist nach einem Mal fehlerhaft; d.h. nach einem Update aller Symbolpreise und dergleichen: Traceback (most recent call last): File Bar, line 1246, inDas ist nicht der Fall.Datei
Nein, wennSie können über mehrere Threads gesammelt werden, und die gesammelten Daten von jedem Thread in einen öffentlichen Objekt gesetzt werden, um zu beurteilen, ob alle Threads beendet sind.
- Ich weiß nicht.Kann man immer ein oder zwei Schlüsselwörter über die Aggregationsfunktion erwähnen?
- Ich weiß nicht.Kann man immer ein oder zwei Schlüsselwörter über die Aggregationsfunktion erwähnen?
Das GrasIch habe diese Bibliothek nicht benutzt, aber es ist am besten, sie Schritt für Schritt zu deaktivieren. Außerdem ist es nicht so gut, Hunderte von Transaktionen gleichzeitig zu führen.
Das Gras/fapi/v1/ticker/price