Skip to main content

Intraday Tickers

Futures and Options product list(Query base on condition)

intraday/tickers/

Parameters

NameTypeDescription
type*stringType,valid in FUTUREOPTION
exchangestringExchange,valid in TAIFEX
sessionstringTrading Session,valid in REGULAR or AFTERHOURS
productstringContract Code
contractTypestringContract Type,valid in I index;R rate;B bond;C commodity;S stock;E exchange rate
isSpreadbooleantrue returns the calendar spread contract list; default returns regular contracts, existing query behavior is unchanged

Response

NameTypeDescription
date*stringDate
type*stringType
exchangestringExchange
sessionstringTrading Session
contractTypestringContract Type
isSpreadbooleanWhether this is a spread-contract query (true when queried with isSpread=true)
dataobject[]Data List
>> typestringType
>> symbolstringContract Code
>> namestringContract Name
>> referencePricestringReference Price
>> contractTypestringContract Type
>> startDatestringStart Trading Date
>> endDatestringLast Trading Date
>> flowGroupstringContract Flow Group
>> settlementDatestringSettlement Date
>> isDynamicBandingbooleanDynamic Price Banding
info

'*' Indicates mandatory disclosure fields.

Spread contract query

When querying spread contracts with isSpread=true, the fields returned in data are reduced (symbol, type, name, isSpread). See "Spread Contracts" below.

Example

from fubon_neo.sdk import FubonSDK, Order

sdk = FubonSDK()

accounts = sdk.login("Your ID", "Your password" , "Your cert path", "Your cert password")

sdk.init_realtime()

restfut = sdk.marketdata.rest_client.futopt
# restfut.intraday.tickers(type='FUTURE', exchange='TAIFEX',session='REGULAR', contractType='E') # Version 2.2.3 and before

## Aftrer version 2.2.4 (use Exception for exception handling)
from fubon_neo.fugle_marketdata.rest.base_rest import FugleAPIError

try:
restfut.intraday.tickers(type='FUTURE', exchange='TAIFEX',session='REGULAR', contractType='E')
except FugleAPIError as e:
print(f"Error: {e}")
print("------------")
print(f"Status Code: {e.status_code}") # Ex: 429
print(f"Response Text: {e.response_text}") # Ex: {"statusCode":429,"message":"Rate limit exceeded"}

Response Body:

{
"type": "FUTURE",
"exchange": "TAIFEX",
"session": "REGULAR",
"contractType": "E",
"data": [
{
"symbol": "RHFA4",
"type": "FUTURE",
"contractType": "E",
"endDate": "2024-01-17",
"flowGroup": 5,
"isDynamicBanding": true,
"name": "美元兌人民幣期貨014",
"referencePrice": 7.1387,
"settlementDate": "2024-01-17",
"startDate": "2023-11-16"
},
{
"symbol": "RHFC4",
"type": "FUTURE",
"contractType": "E",
"endDate": "2024-03-20",
"flowGroup": 5,
"isDynamicBanding": true,
"name": "美元兌人民幣期貨034",
"referencePrice": 7.108,
"settlementDate": "2024-03-20",
"startDate": "2023-01-31"
},
{
"symbol": "RHFF4",
"type": "FUTURE",
"contractType": "E",
"endDate": "2024-06-19",
"flowGroup": 5,
"isDynamicBanding": true,
"name": "美元兌人民幣期貨064",
"referencePrice": 7.0619,
"settlementDate": "2024-06-19",
"startDate": "2023-04-20"
},
{
"symbol": "RHFI4",
"type": "FUTURE",
"contractType": "E",
"endDate": "2024-09-19",
"flowGroup": 5,
"isDynamicBanding": true,
"name": "美元兌人民幣期貨094",
"referencePrice": 7.0189,
"settlementDate": "2024-09-19",
"startDate": "2023-07-20"
},
{
"symbol": "RHFL3",
"type": "FUTURE",
"contractType": "E",
"endDate": "2023-12-20",
"flowGroup": 5,
"isDynamicBanding": true,
"name": "美元兌人民幣期貨123",
"referencePrice": 7.1531,
"settlementDate": "2023-12-20",
"startDate": "2022-10-20"
},
......
]
}

Spread Contracts

Calendar spread contracts do not appear by default in the list; they are only returned when isSpread=true. Spread contracts have the following characteristics:

  • Symbol format is {near month}/{far month}: composed of a near-month and far-month leg, e.g. EXFG6/H6, TXFG6/F7; the contract name shows both months (e.g. "電子期貨076-086").
  • Cannot be queried by a single symbol: because the symbol contains /, "query by symbol" endpoints such as /intraday/ticker/{symbol} and /intraday/quote/{symbol} return 404. Use this list endpoint instead (isSpread=true), or subscribe via WebSocket (put the spread symbol in the symbol field of the subscribe message).
  • Quotes can be negative: since a spread price is the difference between the two legs, bid/ask quotes can be negative — this is expected.
  • Real-time market data is available via WebSocket subscription only: spread contracts have no dedicated REST real-time quote/trade-detail endpoint; real-time quotes and trades must be obtained via WebSocket subscription.
restfut.intraday.tickers(type='FUTURE', exchange='TAIFEX', session='AFTERHOURS', isSpread=True)