# 事件合約 Combo 詢價

request_combo_quotes(combo_leg_list, mvc)

  • 介紹

    提交用戶組合的合約腿(ComboLeg 列表)與 MVC 標的,對組合合約進行詢價,返回該組合的買賣價(bid/ask)與報價 ID(下單時使用)。

  • 參數

    參數 類型 說明
    combo_leg_list ComboLeg 腿列表,元素須為 ComboLeg 對象,非空
    mvc str MVC 標的,從 get_valid_combo_list 返回值透傳
  • 返回

    參數 類型 說明
    ret RET_CODE 介面調用結果
    data dict 當 ret == RET_OK,返回詢價結果
    str 當 ret != RET_OK,返回錯誤描述
  • Example

from moomoo import *

quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)

# 1. 先獲取可 Combo 事件與 mvc
ret, combo_data, mvc, _ = quote_ctx.get_valid_combo_list(category='Sports', count=1)
if ret != RET_OK:
    print('獲取 combo 列表失敗:', combo_data)
    quote_ctx.close()
    exit()

# 2. 構造腿並詢價(兩條腿可來自不同 event,pred_side 必填)
leg1 = ComboLeg()
leg1.code = 'EC.KXWCADVANCE-26JUL14FRAESP-FRA'
leg1.trd_side = TrdSide.BUY
leg1.qty_ratio = 1
leg1.pred_side = PredSide.YES

leg2 = ComboLeg()
leg2.code = 'EC.KXWCADVANCE-26JUL15ENGARG-ENG'
leg2.trd_side = TrdSide.BUY
leg2.qty_ratio = 1
leg2.pred_side = PredSide.YES

ret, data = quote_ctx.request_combo_quotes([leg1, leg2], mvc)
if ret == RET_OK:
    print('bid:', data['bid_price'], 'ask:', data['ask_price'])
    print('quote_id:', data['quote_id'])
    print('should_retry:', data['should_retry'])
    for leg in data['combo_leg_list']:
        print('  leg:', repr(leg))
else:
    print('error:', data)
quote_ctx.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  • Output
bid: N/A ask: 0.333
quote_id: 3fb44348-83e6-4179-a34a-efb09d7b80e6
should_retry: N/A
  leg: ComboLeg(code=EC.KXWCADVANCE-26JUL14FRAESP-FRA, trd_side=BUY, qty_ratio=1.0, pred_side=YES)
  leg: ComboLeg(code=EC.KXWCADVANCE-26JUL15ENGARG-ENG, trd_side=BUY, qty_ratio=1.0, pred_side=YES)
1
2
3
4
5

介面限制

  • 每 30 秒內最多請求 15 次事件合約 Combo 詢價介面