Skip to content

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

python
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ả insights

  • InsightWeightingPortfolioModel — Phân bổ theo confidence

  • AccumulatedInsightPortfolioModel — 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 drawdown

  • TrailingStopRiskModel — Trailing stop

  • MaximumPortfolioLostRatio — 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 động

  • VolumeWeightedExecutionModel — Đặt lệnh theo volume

Powered by dautu.tech