Futures

GetFutureExchange

Purpose

Retrieves future exchange data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetFutureExchange() ([]model.FutureExchange, error)

Availability depends on market, instrument, and enabled data access.

Parameters

No parameters.

Returns

([]model.FutureExchange, error). Key fields from model.FutureExchange:

FieldTypeJSON field
Codestringcode
Namestringname
ZoneIDstringzoneId

Invocation example

result, err := qc.GetFutureExchange()
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "code": "CME",
    "name": "Chicago Mercantile Exchange",
    "market": "US",
    "zone": "America/Chicago"
  },
  {
    "code": "NYMEX",
    "name": "New York Mercantile Exchange",
    "market": "US",
    "zone": "America/New_York"
  },
  {
    "code": "HKEX",
    "name": "Hong Kong Exchanges",
    "market": "HK",
    "zone": "Asia/Hong_Kong"
  }
]

GetFutureContracts

Purpose

Retrieves future contracts data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetFutureContracts(exchange string) ([]model.FutureContractInfo, error)

Availability depends on market, instrument, and enabled data access.

Parameters

ParameterTypeRequiredSDK defaultConstraints
exchangestringYesNoneSee the exact signature; the SDK provides no additional default

Returns

([]model.FutureContractInfo, error). Key fields from model.FutureContractInfo:

FieldTypeJSON field
Continuousboolcontinuous
Tradebooltrade
Typestringtype
ContractCodestringcontractCode
IbCodestringibCode
Namestringname
ContractMonthstringcontractMonth
LastTradingDatestringlastTradingDate
FirstNoticeDatestringfirstNoticeDate
LastBiddingCloseTimeint64lastBiddingCloseTime
Currencystringcurrency
ExchangeCodestringexchangeCode
Multiplierfloat64multiplier
MinTickfloat64minTick

Invocation example

result, err := qc.GetFutureContracts("value")
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "contractCode": "ES2609",
    "symbol": "ES",
    "name": "E-mini S&P 500",
    "exchange": "CME",
    "exchangeCode": "CME",
    "market": "US",
    "currency": "USD",
    "multiplier": 50.0,
    "lastTradingDate": "2025-09-19",
    "firstNoticeDate": "",
    "lastBiddingCloseTime": 0
  },
  {
    "contractCode": "ES2612",
    "symbol": "ES",
    "name": "E-mini S&P 500",
    "exchange": "CME",
    "exchangeCode": "CME",
    "market": "US",
    "currency": "USD",
    "multiplier": 50.0,
    "lastTradingDate": "2025-12-19",
    "firstNoticeDate": "",
    "lastBiddingCloseTime": 0
  }
]

GetFutureContract

Purpose

Retrieves future contract data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetFutureContract(req model.FutureContractSingleRequest) ([]model.FutureContractInfo, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.FutureContractSingleRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
TypestringNoOmitted if emptyAllowed values: Exercise or Expire for option exercise requests; product type for futures requests
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

([]model.FutureContractInfo, error). Key fields from model.FutureContractInfo:

FieldTypeJSON field
Continuousboolcontinuous
Tradebooltrade
Typestringtype
ContractCodestringcontractCode
IbCodestringibCode
Namestringname
ContractMonthstringcontractMonth
LastTradingDatestringlastTradingDate
FirstNoticeDatestringfirstNoticeDate
LastBiddingCloseTimeint64lastBiddingCloseTime
Currencystringcurrency
ExchangeCodestringexchangeCode
Multiplierfloat64multiplier
MinTickfloat64minTick

Invocation example

result, err := qc.GetFutureContract(model.FutureContractSingleRequest{
	ContractCode: "ES2609",
	Type: "Exercise",
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
{
  "contractCode": "ES2609",
  "symbol": "ES",
  "name": "E-mini S&P 500",
  "exchange": "CME",
  "exchangeCode": "CME",
  "market": "US",
  "currency": "USD",
  "multiplier": 50.0,
  "lastTradingDate": "2025-09-19",
  "firstNoticeDate": "",
  "lastBiddingCloseTime": 0
}

GetAllFutureContracts

Purpose

Retrieves all future contracts data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetAllFutureContracts(req model.AllFutureContractsRequest) ([]model.FutureContractInfo, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.AllFutureContractsRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
TypestringNoOmitted if emptyAllowed values: Exercise or Expire for option exercise requests; product type for futures requests
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

([]model.FutureContractInfo, error). Key fields from model.FutureContractInfo:

FieldTypeJSON field
Continuousboolcontinuous
Tradebooltrade
Typestringtype
ContractCodestringcontractCode
IbCodestringibCode
Namestringname
ContractMonthstringcontractMonth
LastTradingDatestringlastTradingDate
FirstNoticeDatestringfirstNoticeDate
LastBiddingCloseTimeint64lastBiddingCloseTime
Currencystringcurrency
ExchangeCodestringexchangeCode
Multiplierfloat64multiplier
MinTickfloat64minTick

Invocation example

result, err := qc.GetAllFutureContracts(model.AllFutureContractsRequest{
	Type: "Exercise",
	Exchange: "CME",
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "contractCode": "ES2609",
    "symbol": "ES",
    "name": "E-mini S&P 500",
    "exchange": "CME",
    "exchangeCode": "CME",
    "market": "US",
    "currency": "USD",
    "multiplier": 50.0,
    "lastTradingDate": "2025-09-19",
    "firstNoticeDate": "",
    "lastBiddingCloseTime": 0
  },
  {
    "contractCode": "ES2612",
    "symbol": "ES",
    "name": "E-mini S&P 500",
    "exchange": "CME",
    "exchangeCode": "CME",
    "market": "US",
    "currency": "USD",
    "multiplier": 50.0,
    "lastTradingDate": "2025-12-19",
    "firstNoticeDate": "",
    "lastBiddingCloseTime": 0
  }
]

GetCurrentFutureContract

Purpose

Retrieves current future contract data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetCurrentFutureContract(req model.FutureContractSingleRequest) (*model.FutureContractInfo, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.FutureContractSingleRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
TypestringNoOmitted if emptyAllowed values: Exercise or Expire for option exercise requests; product type for futures requests
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

(*model.FutureContractInfo, error). Key fields from model.FutureContractInfo:

FieldTypeJSON field
Continuousboolcontinuous
Tradebooltrade
Typestringtype
ContractCodestringcontractCode
IbCodestringibCode
Namestringname
ContractMonthstringcontractMonth
LastTradingDatestringlastTradingDate
FirstNoticeDatestringfirstNoticeDate
LastBiddingCloseTimeint64lastBiddingCloseTime
Currencystringcurrency
ExchangeCodestringexchangeCode
Multiplierfloat64multiplier
MinTickfloat64minTick

Invocation example

result, err := qc.GetCurrentFutureContract(model.FutureContractSingleRequest{
	ContractCode: "ES2609",
	Type: "Exercise",
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
{
  "contractCode": "ES2609",
  "symbol": "ES",
  "name": "E-mini S&P 500",
  "exchange": "CME",
  "exchangeCode": "CME",
  "market": "US",
  "currency": "USD",
  "multiplier": 50.0,
  "lastTradingDate": "2025-09-19",
  "firstNoticeDate": "",
  "lastBiddingCloseTime": 0
}

GetFutureContinuousContracts

Purpose

Retrieves future continuous contracts data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetFutureContinuousContracts(req model.FutureContinuousContractsRequest) ([]model.FutureContractInfo, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.FutureContinuousContractsRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
TypestringNoOmitted if emptyAllowed values: Exercise or Expire for option exercise requests; product type for futures requests
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

([]model.FutureContractInfo, error). Key fields from model.FutureContractInfo:

FieldTypeJSON field
Continuousboolcontinuous
Tradebooltrade
Typestringtype
ContractCodestringcontractCode
IbCodestringibCode
Namestringname
ContractMonthstringcontractMonth
LastTradingDatestringlastTradingDate
FirstNoticeDatestringfirstNoticeDate
LastBiddingCloseTimeint64lastBiddingCloseTime
Currencystringcurrency
ExchangeCodestringexchangeCode
Multiplierfloat64multiplier
MinTickfloat64minTick

Invocation example

result, err := qc.GetFutureContinuousContracts(model.FutureContinuousContractsRequest{
	Type: "Exercise",
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "contractCode": "ESmain",
    "symbol": "ES",
    "name": "E-mini S&P 500 Continuous",
    "exchange": "CME",
    "exchangeCode": "CME",
    "market": "US",
    "currency": "USD",
    "multiplier": 50.0,
    "type": "main"
  }
]

GetFutureHistoryMainContract

Purpose

Retrieves future history main contract data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetFutureHistoryMainContract(req model.FutureHistoryMainContractRequest) ([]model.FutureMainContractHistory, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.FutureHistoryMainContractRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

([]model.FutureMainContractHistory, error). Key fields from model.FutureMainContractHistory:

FieldTypeJSON field
ContractCodestringcontractCode
Symbolstringsymbol
BeginDatestringbeginDate
EndDatestringendDate

Invocation example

result, err := qc.GetFutureHistoryMainContract(model.FutureHistoryMainContractRequest{
	ContractCodes: []string{"ES2609"},
	BeginTime: 1735689600000,
	EndTime: 1738281600000,
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "contractCode": "ES2609",
    "symbol": "ES",
    "beginDate": "2025-06-20",
    "endDate": "2025-09-19"
  },
  {
    "contractCode": "ES2606",
    "symbol": "ES",
    "beginDate": "2025-03-21",
    "endDate": "2025-06-19"
  }
]

GetFutureRealTimeQuote

Purpose

Retrieves future real time quote data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetFutureRealTimeQuote(req model.FutureBriefRequest) ([]model.FutureQuote, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.FutureBriefRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

([]model.FutureQuote, error). Key fields from model.FutureQuote:

FieldTypeJSON field
ContractCodestringcontractCode
LatestPricefloat64latestPrice
LatestSizeint64latestSize
LatestTimeint64latestTime
BidPricefloat64bidPrice
AskPricefloat64askPrice
BidSizeint64bidSize
AskSizeint64askSize
OpenInterestint64openInterest
OpenInterestChangeint64openInterestChange
Volumeint64volume
Openfloat64open
Highfloat64high
Lowfloat64low

Invocation example

result, err := qc.GetFutureRealTimeQuote(model.FutureBriefRequest{
	ContractCodes: []string{"ES2609"},
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "symbol": "ES2609",
    "open": 5620.25,
    "high": 5658.50,
    "low": 5605.00,
    "close": 5645.75,
    "preClose": 5618.00,
    "latestPrice": 5645.75,
    "latestTime": 1785528000000,
    "askPrice": 5646.00,
    "askSize": 125,
    "bidPrice": 5645.75,
    "bidSize": 98,
    "volume": 1523400,
    "status": "NORMAL"
  }
]

GetFutureKline

Purpose

Retrieves future kline data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetFutureKline(req model.FutureKlineRequest) ([]model.FutureKline, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.FutureKlineRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
PeriodstringNoOmitted if emptyAllowed values: day, week, month, year, 1min, 5min, 15min, 30min, 60min
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

([]model.FutureKline, error). Key fields from model.FutureKline:

FieldTypeJSON field
NextPageTokenstringnextPageToken
Items[]FutureKlineItemitems

Invocation example

result, err := qc.GetFutureKline(model.FutureKlineRequest{
	ContractCodes: []string{"ES2609"},
	ContractCode: "ES2609",
	Period: "day",
	BeginTime: 1735689600000,
	EndTime: 1738281600000,
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "symbol": "ES2609",
    "period": "day",
    "nextPageToken": null,
    "items": [
      {
        "time": 1785384000000,
        "volume": 1234567,
        "open": 5618.00,
        "close": 5620.25,
        "high": 5635.50,
        "low": 5598.75,
        "amount": 0
      },
      {
        "time": 1785470400000,
        "volume": 1523400,
        "open": 5620.25,
        "close": 5645.75,
        "high": 5658.50,
        "low": 5605.00,
        "amount": 0
      }
    ]
  }
]

GetFutureKlineByPage

Purpose

Retrieves future kline by page data and decodes it into the published Go return model. The client performs client-side pagination and merges pages.

Signature

func (c *QuoteClient) GetFutureKlineByPage(req model.FutureKlineByPageRequest) ([]model.FutureKlineItem, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.FutureKlineByPageRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
PeriodstringNoOmitted if emptyAllowed values: day, week, month, year, 1min, 5min, 15min, 30min, 60min
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

([]model.FutureKlineItem, error). Key fields from model.FutureKlineItem:

FieldTypeJSON field
Timeint64time
Volumeint64volume
Openfloat64open
Closefloat64close
Highfloat64high
Lowfloat64low
LastTimeint64lastTime
OpenInterestint64openInterest
Settlementfloat64settlement

Invocation example

result, err := qc.GetFutureKlineByPage(model.FutureKlineByPageRequest{
	ContractCode: "ES2609",
	Period: "day",
	BeginTime: 1735689600000,
	EndTime: 1738281600000,
	TotalSize: 100,
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "time": 1785384000000,
    "volume": 1234567,
    "open": 5618.00,
    "close": 5620.25,
    "high": 5635.50,
    "low": 5598.75,
    "amount": 0
  },
  {
    "time": 1785470400000,
    "volume": 1523400,
    "open": 5620.25,
    "close": 5645.75,
    "high": 5658.50,
    "low": 5605.00,
    "amount": 0
  }
]

GetFutureTradeTicks

Purpose

Retrieves future trade ticks data and decodes it into the published Go return model. The client uses API version 3.0.

Signature

func (c *QuoteClient) GetFutureTradeTicks(req model.FutureTradeTicksRequest) ([]model.FutureTradeTickItem, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.FutureTradeTicksRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

([]model.FutureTradeTickItem, error). Key fields from model.FutureTradeTickItem:

FieldTypeJSON field
ContractCodestringcontractCode
Indexint64index
Timeint64time
Pricefloat64price
Volumeint64volume
Directionstringdirection

Invocation example

result, err := qc.GetFutureTradeTicks(model.FutureTradeTicksRequest{
	ContractCode: "ES2609",
	Limit: 20,
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "symbol": "ES2609",
    "beginIndex": 98200,
    "endIndex": 98202,
    "items": [
      {"time": 1785527990000, "volume": 5, "price": 5645.50, "type": "+"},
      {"time": 1785527995000, "volume": 12, "price": 5645.75, "type": "-"}
    ]
  }
]

GetFutureDepth

Purpose

Retrieves future depth data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetFutureDepth(req model.FutureDepthRequest) ([]model.FutureDepth, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.FutureDepthRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

([]model.FutureDepth, error). Key fields from model.FutureDepth:

FieldTypeJSON field
ContractCodestringcontractCode
Timestampint64timestamp
Asks[]DepthLevelasks
Bids[]DepthLevelbids

Invocation example

result, err := qc.GetFutureDepth(model.FutureDepthRequest{
	ContractCodes: []string{"ES2609"},
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "symbol": "ES2609",
    "asks": [
      {"price": 5646.00, "volume": 125, "count": 0},
      {"price": 5646.25, "volume": 200, "count": 0},
      {"price": 5646.50, "volume": 350, "count": 0}
    ],
    "bids": [
      {"price": 5645.75, "volume": 98, "count": 0},
      {"price": 5645.50, "volume": 180, "count": 0},
      {"price": 5645.25, "volume": 275, "count": 0}
    ]
  }
]

GetFutureTradingTimes

Purpose

Retrieves future trading times data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetFutureTradingTimes(req model.FutureTradingTimesRequest) (*model.FutureTradingTime, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.FutureTradingTimesRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

(*model.FutureTradingTime, error). Key fields from model.FutureTradingTime:

FieldTypeJSON field
ContractCodestringcontractCode
BizDatestringbizDate
Zonestringzone
TradingTimes[]FutureTradingSegmenttradingTimes

Invocation example

result, err := qc.GetFutureTradingTimes(model.FutureTradingTimesRequest{
	ContractCode: "ES2609",
	TradingDate: "2025-01-15",
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "symbol": "ES",
    "tradingTimes": [
      {"start": "18:00:00", "end": "17:00:00", "zone": "America/Chicago", "tradingSession": "Electronic"}
    ]
  }
]


Did this page help you?