Skip to content

Trading & Orders

QuantConnect hỗ trợ đầy đủ các loại lệnh giao dịch và fill models mô phỏng cách lệnh được khớp.

Đặt Lệnh Cơ Bản

python
# Market Order — khớp ngay
self.MarketOrder("SPY", 100)

# Market Order theo % vốn
self.SetHoldings("SPY", 0.5)  # 50% danh mục

# Limit Order — chỉ khớp ở giá limit hoặc tốt hơn
self.LimitOrder("SPY", 100, 450.50)

# Stop Market Order — kích hoạt khi giá chạm stop
self.StopMarketOrder("SPY", -100, 440.00)  # Stop-loss

# Stop Limit Order — kết hợp stop + limit
self.StopLimitOrder("SPY", 100, 460.00, 461.00)

Quản Lý Lệnh

text
transaction = self.Transactions

# Kiểm tra lệnh đang pending
pending = transaction.GetOpenOrders()

# Hủy lệnh
transaction.CancelOpenOrders("SPY")

# Cập nhật lệnh
ticket = self.LimitOrder("SPY", 100, 450.50)
ticket.Update(LimitOrderUpdateFields(452.00))  # Sửa giá

Fill Models

Mỗi loại tài sản có fill model mặc định khác nhau. Bạn có thể customize:

python
# Equity fill model (mặc định)
self.Securities["SPY"].SetFillModel(EquityFillModel())

# Custom fill model cho slippage
class MyFillModel(FillModel):
    def MarketFill(self, asset, order):
        fill = super().MarketFill(asset, order)
        fill.FillPrice *= 1.001  # 0.1% slippage
        return fill

self.Securities["BTCUSDT"].SetFillModel(MyFillModel())

Order Events

Theo dõi trạng thái lệnh qua OnOrderEvent:

python
def OnOrderEvent(self, orderEvent: OrderEvent):
    self.Debug(f"Lệnh {orderEvent.OrderId}: {orderEvent.Status}")
    if orderEvent.Status == OrderStatus.Filled:
        self.Debug(f"Fill giá: {orderEvent.FillPrice}, SL: {orderEvent.FillQuantity}")

Powered by dautu.tech