Bài viết gần đây
-
-
Phân Biệt MySQL Và PostgreSQL
Tháng 1 1, 2026 -
Gen Z Việt Nam trước làn sóng Web3
Tháng 12 29, 2025
| Thu Thập & Xử Lý Dữ Liệu Thị Trường Cho Giao Dịch Định Lượng
Được viết bởi thanhdt vào ngày 09/12/2025 lúc 18:37 | 63 lượt xem
Thu Thập & Xử Lý Dữ Liệu Thị Trường Cho Giao Dịch Định Lượng



Trong giao dịch định lượng (Quant Trading), dữ liệu là nền tảng của mọi chiến lược.
Không có dữ liệu → không có tín hiệu → không có backtest → không có bot.
Ở các quỹ lớn, 70% ngân sách dành cho Data Engineering hơn là chiến lược.
Bài này giúp bạn nắm toàn bộ quy trình thu thập – xử lý – làm sạch dữ liệu để xây hệ thống giao dịch định lượng và bot tự động.
1. Các loại dữ liệu quan trọng trong Quant Trading
Để xây chiến lược định lượng, bạn cần hiểu rõ những loại data cốt lõi:
(1) Giá & khối lượng (OHLCV)
- Open
- High
- Low
- Close
- Volume
Ứng dụng:
- Indicator
- Backtest
- Signal
(2) Ticks
Dữ liệu từng giao dịch nhỏ → dùng cho chiến lược high frequency (HFT).
(3) Orderbook (Depth)
- Bid/Ask
- Liquidity
- Market Impact
Ứng dụng:
- Scalping
- Market Making
- Orderflow
(4) Funding Rates (Crypto)
Quan trọng với bot Future.
(5) Open Interest
Phân tích sức mạnh dòng tiền.
(6) Sentiment
Tin tức, social media, Fear-Greed index.
(7) On-chain Data (Crypto)
- Whale activity
- Smart money
- Stablecoin flow



2. Nguồn lấy dữ liệu phổ biến
Crypto
- Binance API
- Bitget API
- Bybit API
- OKX API
- ccxt library (dùng chung cho 150+ sàn)
Forex
- MetaTrader 5 (MT5 API)
- Oanda API
- Interactive Brokers
Chứng khoán Việt Nam
- vnstock / vnstock3
- SSI / VND API (tuỳ mô hình)
Dữ liệu lịch sử nâng cao
- CryptoQuant
- Glassnode
- Kaiko
- CoinAPI
- AlphaVantage
- Quandl
3. Cách thu thập dữ liệu bằng Python (ccxt / MT5 / vnstock)


(1) Lấy dữ liệu Crypto bằng ccxt
import ccxt
import pandas as pd
exchange = ccxt.binance()
bars = exchange.fetch_ohlcv('BTC/USDT', timeframe='1m', limit=500)
df = pd.DataFrame(bars, columns=['time','open','high','low','close','volume'])
df['time'] = pd.to_datetime(df['time'], unit='ms')
print(df.head())
(2) Lấy dữ liệu Forex bằng MetaTrader 5
import MetaTrader5 as mt5
import pandas as pd
mt5.initialize()
rates = mt5.copy_rates_from_pos("EURUSD", mt5.TIMEFRAME_M5, 0, 500)
df = pd.DataFrame(rates)
df['time'] = pd.to_datetime(df['time'], unit='s')
print(df.head())
(3) Lấy dữ liệu chứng khoán Việt Nam bằng vnstock3
from vnstock import *
data = stock_historical_data(symbol="FPT", start="2023-01-01", end="2023-12-31")
print(data.head())
4. Tiêu chuẩn xử lý dữ liệu để tạo chiến lược đúng
Dữ liệu thô KHÔNG dùng được để xây chiến lược.
Cần qua 4 bước xử lý:
(1) Cleaning – Làm sạch dữ liệu
- Xử lý Missing Data
- Xóa đuôi nến lỗi / spike
- Loại bỏ outliers
- Kiểm tra timezone
(2) Normalization – Chuẩn hóa dữ liệu
- Chuyển dữ liệu về cùng timezone
- Chuẩn hóa Volume
- Tạo trả về (Return):
- Log return
- Percentage return
df['return'] = df['close'].pct_change()
df['log_return'] = np.log(df['close']/df['close'].shift(1))
(3) Feature Engineering – Tạo dữ liệu chiến lược
- EMA, SMA
- RSI
- MACD
- ATR
- Bollinger
- Volume Profile
- Volatility
- VWAP
Bot AI/ML có thể dùng:
- Lag features
- Rolling window
- Trend strength
- Volume delta
(4) Resampling – Đồng bộ timeframe
Ví dụ:
df_15m = df.resample('15T').agg({
'open':'first',
'high':'max',
'low':'min',
'close':'last',
'volume':'sum'
})
5. Tránh 5 lỗi dữ liệu khiến bot thua lỗ



❌ Lỗi 1 – Look-ahead bias
Dùng dữ liệu tương lai để tính tín hiệu hiện tại.
❌ Lỗi 2 – Survivorship bias
Chỉ dùng các coin/cổ phiếu đang tồn tại → thiếu dữ liệu delist.
❌ Lỗi 3 – Time mismatch
Dữ liệu không đồng bộ timezone → chiến lược sai hoàn toàn.
❌ Lỗi 4 – Missing candle / gap
Thiếu nến tạo sai pattern.
❌ Lỗi 5 – Không kiểm tra dữ liệu volume/price abnormal
Spike volume ảo gây tín hiệu giả.
6. Xây Data Pipeline chuẩn cho hệ thống Quant Trading


Một pipeline chuẩn gồm:
- Collector – Fetch từ API
- Validator – Kiểm lỗi
- Cleaner – Làm sạch dữ liệu
- Normalizer – Đồng bộ format
- Feature Generator
- Database – PostgreSQL / MongoDB
- Streaming Data – Kafka / Redis cho phiên bản realtime
- Downstream Apps
- Backtest engine
- Signal engine
- Bot execution
7. Lưu trữ dữ liệu thị trường (Database)
Lựa chọn phổ biến:
| Loại | Dùng khi |
|---|---|
| PostgreSQL | Lưu OHLCV, backtest, log lệnh |
| MongoDB | Lưu orderbook, tick, JSON linh hoạt |
| InfluxDB / TimescaleDB | Dùng cho dữ liệu time-series nặng |
| Redis | Dữ liệu realtime, cache |
8. Minh họa mô hình Data Warehouse trong Quant Trading



9. Kết luận
Dữ liệu là “nguyên liệu thô” quan trọng nhất trong giao dịch định lượng.
Một chiến lược chỉ mạnh khi dữ liệu:
- Đầy đủ
- Không lỗi
- Đồng bộ
- Tối ưu cho phân tích
Hãy nhớ:
Chiến lược tốt + dữ liệu sai = bot thua lỗ.
Chiến lược trung bình + dữ liệu chuẩn = bot ổn định.