Skip to Content

Ngày 39 - Python 365 ngày: Làm việc với Dữ liệu Binance bằng Python

🐍 Ngày 39 - Python 365 ngày: Làm việc với Dữ liệu Binance bằng Python

📊 Làm việc với Dữ liệu Binance bằng Python

Trong ngày hôm nay, chúng ta sẽ tìm hiểu cách kết nối với sàn giao dịch Binance để lấy dữ liệu thị trường và phân tích bằng Python. Đây là một bước quan trọng trong các dự án liên quan đến tài chính, trading bot, hoặc theo dõi giá crypto tự động.

✅ Mục tiêu

  • Cài đặt thư viện python-binance
  • Kết nối API với Binance
  • Lấy dữ liệu nến (OHLCV) từ thị trường BTC/USDT
  • Phân tích cơ bản và hiển thị

🧰 Cài đặt thư viện cần thiết

pip install python-binance pandas

🔑 Kết nối API Binance

Bạn cần đăng ký API key trên Binance để sử dụng.

from binance.client import Client
import pandas as pd

# Điền API key & secret
api_key = 'YOUR_API_KEY'
api_secret = 'YOUR_API_SECRET'

client = Client(api_key, api_secret)

📈 Lấy dữ liệu nến 1 giờ của cặp BTC/USDT trong 7 ngày

klines = client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_1HOUR, "7 day ago UTC")

# Tạo DataFrame
df = pd.DataFrame(klines, columns=[
    'timestamp', 'open', 'high', 'low', 'close', 'volume',
    'close_time', 'quote_asset_volume', 'number_of_trades',
    'taker_buy_base', 'taker_buy_quote', 'ignore'
])

# Chuyển định dạng timestamp
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
df.set_index('timestamp', inplace=True)

# Chỉ giữ lại các cột cần thiết
df = df[['open', 'high', 'low', 'close', 'volume']].astype(float)

print(df.head())

📊 Hiển thị biểu đồ giá đơn giản

import matplotlib.pyplot as plt

df['close'].plot(figsize=(12,6), title='BTC/USDT - Close Price (1h)')
plt.xlabel('Time')
plt.ylabel('Price (USDT)')
plt.grid(True)
plt.show()

🎯 Gợi ý mở rộng

  • Tạo script theo dõi giá theo thời gian thực
  • Lưu dữ liệu vào CSV hoặc SQLite
  • Kết hợp với chiến lược giao dịch tự động (Python Bot)
  • Hiển thị dữ liệu bằng Dash/Streamlit

💡 Tổng kết

Hôm nay bạn đã biết cách:

✅ Kết nối với Binance

✅ Lấy dữ liệu giá theo khung thời gian

✅ Xử lý và hiển thị bằng pandas & matplotlib

Hẹn gặp bạn ở Ngày 40, nơi chúng ta sẽ học cách gửi tín hiệu đến Telegram hoặc Zalo để theo dõi thị trường tự động 🚀


🎥 Video minh họa


/* Tối ưu font, khoảng cách và màu chủ đạo */ body { font-family: 'Inter', sans-serif; color: #2e3a59; } h1, h2, h3 { color: #2a7a4d; /* màu xanh giống Docusaurus */ font-weight: 700; } a { color: #2a7a4d; text-decoration: none; } a:hover { text-decoration: underline; } /* Bo tròn và đổ bóng cho khối nội dung */ .card, .oe_structure { border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.05); padding: 1.5rem; }