Algorithm Framework (5 Modules)
QuantConnect cung cấp 5-module framework giúp tổ chức code giao dịch rõ ràng, tách biệt các concerns.
Tổng Quan 5 Modules
class MyFrameworkAlgorithm(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2023, 1, 1)
self.SetCash(100000)
# 1. Universe Selection
self.SetUniverseSelection(ManualUniverseSelectionModel())
# 2. Alpha - sinh tín hiệu
self.SetAlpha(ConstantAlphaModel(InsightType.Price, InsightDirection.Up, timedelta(days=1)))
# 3. Portfolio - phân bổ vốn
self.SetPortfolio(EqualWeightingPortfolioModel())
# 4. Risk - quản lý rủi ro
self.SetRisk(MaximumDrawdownPercentPortfolio(0.2))
# 5. Execution - khớp lệnh
self.SetExecution(ImmediateExecutionModel())1. Universe Selection Model
Chọn tài sản nào tham gia thuật toán. Có 2 loại:
Coarse Universe — Lọc theo giá, volume, dollar volume (top 500-1000 stocks)
Fine Universe — Lọc thêm fundamental data (P/E, EPS, market cap, sector)
2. Alpha Model
Sinh ra các Insight — tín hiệu giao dịch. Mỗi Insight có:
Type: Price (dự đoán giá) hoặc Volatility (dự đoán biến động)
Direction: Up, Down, Flat
Period: Thời gian giữ insight (vd: timedelta(hours=1))
Magnitude: Độ lớn kỳ vọng (tuỳ chọn)
Confidence: Độ tin cậy (0-1, tuỳ chọn)
3. Portfolio Model
Chuyển Insights thành danh mục cụ thể. Các model có sẵn:
EqualWeightingPortfolioModel— Chia đều vốn cho tất cả insightsInsightWeightingPortfolioModel— Phân bổ theo confidenceAccumulatedInsightPortfolioModel— Tích lũy insights
4. Risk Model
Quản lý rủi ro trước khi lệnh được đặt:
MaximumDrawdownPercentPortfolio— Giới hạn drawdownTrailingStopRiskModel— Trailing stopMaximumPortfolioLostRatio— Giới hạn lỗ tối đa
5. Execution Model
Khớp lệnh thực tế ra thị trường:
ImmediateExecutionModel— Đặt lệnh ngay (market order)StandardDeviationExecutionModel— Đặt lệnh theo độ biến độngVolumeWeightedExecutionModel— Đặt lệnh theo volume