# Get Valid Combo List

get_valid_combo_list(category=None, competition=None, series=None, next_page=None, count=None)

  • Description

    Get the list of events that can participate in a Combo, returning the combinable contract list under each combinable event, along with the MVC security (which must be passed through to the RFQ interface). Supports filtering by category, competition, and Series, as well as pagination.

  • Parameters

    Parameter Type Description
    category str Top-level category filter, e.g. 'Sports'
    competition str Competition filter
    series str Series security filter, e.g. 'EC.xxx'
    next_page str Pagination marker, omit on the first page
    count int Maximum number of items returned per page, optional, unlimited by default
  • Return

    Parameter Type Description
    ret RET_CODE API call result
    data pd.DataFrame When ret == RET_OK, returns the Combo-able event list
    str When ret != RET_OK, returns the error description
    mvc str MVC security string, passed through to the request_combo_quotes RFQ interface
    next_page str Pagination marker, an empty string means no next page

    The fields of the returned DataFrame are as follows:

    Field Type Description
    event_code str Event code
    event_name str Event name (localized)
    combo_contracts list List of combinable contract codes
    series_code str Owning Series code
    category str Top-level category identifier
    competition str Competition name (localized)
    competition_scope str Competition type/scope (localized)
  • Example

from moomoo import *

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

ret, data, mvc, next_page = quote_ctx.get_valid_combo_list(category='Sports', count=5)
if ret == RET_OK:
    print(data)
    print('mvc:', mvc)  # passed through to request_combo_quotes
    if not data.empty:
        contracts = data.iloc[0]['combo_contracts']
        print('combinable contracts:', contracts)
else:
    print('error:', data)

quote_ctx.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  • Output
                           event_code                    event_name                                                                 combo_contracts            series_code category            competition competition_scope
0  EC.KXWCADVANCE-26JUL14FRAESP.EVENT               France vs Spain            [EC.KXWCADVANCE-26JUL14FRAESP-FRA, EC.KXWCADVANCE-26JUL14FRAESP-ESP]  EC.KXWCADVANCE.SERIES      Hot         FIFA World Cup              Game
1           EC.KXPGATOUR-THOC26.EVENT  The Open Championship Winner  [EC.KXPGATOUR-THOC26-SSCH, EC.KXPGATOUR-THOC26-RMCI, EC.KXPGATOUR-THOC26-MFIT]    EC.KXPGATOUR.SERIES      Hot  The Open Championship              Game
2  EC.KXWCADVANCE-26JUL15ENGARG.EVENT          England vs Argentina            [EC.KXWCADVANCE-26JUL15ENGARG-ENG, EC.KXWCADVANCE-26JUL15ENGARG-ARG]  EC.KXWCADVANCE.SERIES      Hot         FIFA World Cup              Game
3   EC.KXWTAMATCH-26JUL13PRIGAR.EVENT    Pridankina vs Garcia Perez              [EC.KXWTAMATCH-26JUL13PRIGAR-PRI, EC.KXWTAMATCH-26JUL13PRIGAR-GAR]   EC.KXWTAMATCH.SERIES      Hot               WTA Iasi              Game
4   EC.KXATPMATCH-26JUL12SONSCH.EVENT         Sonego vs Schwaerzler              [EC.KXATPMATCH-26JUL12SONSCH-SON, EC.KXATPMATCH-26JUL12SONSCH-SCH]   EC.KXATPMATCH.SERIES      Hot             ATP Gstaad              Game
mvc: KALSHI.KXMVECROSSCATEGORY-R
combinable contracts: ['EC.KXWCADVANCE-26JUL14FRAESP-FRA', 'EC.KXWCADVANCE-26JUL14FRAESP-ESP']
1
2
3
4
5
6
7
8

Interface Limitations

  • A maximum of 15 requests can be made to the Event Contract Combo list interface every 30 seconds