|
|
|
|
|
""" |
|
|
测试币安API连接和数据获取功能 |
|
|
""" |
|
|
|
|
|
import sys |
|
|
import os |
|
|
sys.path.append(os.path.dirname(os.path.abspath(__file__))) |
|
|
|
|
|
from binance.client import Client |
|
|
import pandas as pd |
|
|
|
|
|
def test_binance_connection(): |
|
|
"""测试币安连接""" |
|
|
try: |
|
|
|
|
|
client = Client("", "") |
|
|
|
|
|
|
|
|
server_time = client.get_server_time() |
|
|
print(f"✅ 币安服务器连接成功,服务器时间: {server_time}") |
|
|
|
|
|
|
|
|
exchange_info = client.get_exchange_info() |
|
|
print(f"✅ 获取交易所信息成功,共有 {len(exchange_info['symbols'])} 个交易对") |
|
|
|
|
|
|
|
|
klines = client.get_klines(symbol='BTCUSDT', interval='1h', limit=10) |
|
|
print(f"✅ 获取BTCUSDT K线数据成功,获取到 {len(klines)} 条数据") |
|
|
|
|
|
|
|
|
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') |
|
|
print("\n最新的5条K线数据:") |
|
|
print(df[['timestamp', 'open', 'high', 'low', 'close', 'volume']].tail()) |
|
|
|
|
|
return True |
|
|
|
|
|
except Exception as e: |
|
|
print(f"❌ 币安连接测试失败: {e}") |
|
|
return False |
|
|
|
|
|
if __name__ == "__main__": |
|
|
print("🚀 开始测试币安API连接...") |
|
|
success = test_binance_connection() |
|
|
|
|
|
if success: |
|
|
print("\n✅ 所有测试通过!币安API集成准备就绪。") |
|
|
else: |
|
|
print("\n❌ 测试失败,请检查网络连接。") |
|
|
|