附錄 C:代碼模式速查表常見交易場景的標準代碼模板

1. 啟動與基礎訂閱

def on_start(self):
    # 獲取 InstrumentId 對象
    self.instrument_id = InstrumentId.from_str("BTCUSDT.BINANCE")
    
    # 訂閱 1 分鐘 K 線
    self.subscribe_bars(BarType.from_str("BTCUSDT.BINANCE-1-MINUTE-LAST"))
    
    # 初始化指標
    self.ema = ExponentialMovingAverage(period=20)

2. 檢查持倉並下市價單

def handle_signal(self):
    if self.portfolio.is_flat(self.instrument_id):
        order = self.order_factory.market(
            instrument_id=self.instrument_id,
            order_side=OrderSide.BUY,
            quantity=Quantity.from_str("0.01"),
        )
        self.submit_order(order)

3. 設置止損限價單 (OCO 模式)

def on_position_opened(self, event):
    # 當新倉位建立時,自動掛止損和止盈
    # 注意:這裡通常結合 OCO 或 Bracket Order 配置
    pass

4. 遍歷當前所有掛單

def cancel_stale_orders(self):
    open_orders = self.cache.orders_open(self.instrument_id)
    for order in open_orders:
        if order.duration_seconds > 60:
            self.cancel_order(order)

5. 使用自定義日誌

def on_order_denied(self, event):
    self.log.error(f"訂單被拒絕!原因: {event.reason}")