附錄 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}")