Custom Data
Custom Data cho phép bạn import bất kỳ dữ liệu nào vào QuantConnect — từ CSV file, JSON, API, hay database — và sử dụng như dataset có sẵn.
Khi Nào Cần Custom Data?
Chứng khoán Việt Nam (VN30F, HOSE, HNX)
Dữ liệu từ API riêng (FinMind, FiinTrade, SSI iBoard)
Dữ liệu CSV từ Excel, MT4, Amibroker
Dữ liệu thay thế (sentiment, on-chain, v.v.)
Dữ liệu được tính toán từ nhiều nguồn
PythonData Class
python
class MyCustomData(PythonData):
def GetSource(self, config, date, isLive):
# Định nghĩa nguồn dữ liệu (local file hoặc URL)
return SubscriptionDataSource(
"file:///path/to/data.csv",
SubscriptionTransportMedium.LocalFile
)
def Reader(self, config, line, date, isLive):
# Parse từng dòng dữ liệu
if not line.strip():
return None
data = MyCustomData()
data.Symbol = config.Symbol
# Parse CSV: date,open,high,low,close,volume
parts = line.split(',')
data.Time = datetime.strptime(parts[0], "%Y%m%d %H:%M")
data.Open = float(parts[1])
data.High = float(parts[2])
data.Low = float(parts[3])
data.Close = float(parts[4])
data.Volume = float(parts[5])
return dataĐăng Ký Custom Data
python
# Trong Initialize()
self.AddData(MyCustomData, "VN30F1M", Resolution.Minute)
# Hoặc với ticker
vn30f = self.AddData(MyCustomData, "VN30F")
vn30f.SetLeverage(5)Formats Hỗ Trợ
| Format | Transport Medium | Use Case |
|---|---|---|
| Local CSV/Parquet | LocalFile | Backtest local |
| Remote CSV/JSON | RemoteFile | Backtest cloud |
| API Endpoint | RemoteFile | Live trading |
| ObjectStore | ObjectStore | ML models, cache |