Historical Daily BETA
查詢期貨與選擇權某一交易日的歷史日行情(依商品代號查詢)。一次取得該商品當日全部掛牌合約(選擇權各履約價的買權與賣權、期貨各月份與價差),可用 contractMonth 只取單一契約月份;支援日盤與夜盤,日盤可回溯至 2010 年,夜盤自 2017-05-16 起。
GET /historical/daily/{product}
Parameters
| Name | Type | Description |
|---|---|---|
product* | string | 商品代號,例如期貨 TXF、MXF,選擇權 TXO(大寫)。週契約亦以商品代號查詢,再以 contractMonth 指定(例:TXO 搭配 202610W1)。契約代碼(例:TXFJ6)不可作為 product,會回傳 400;價差代碼(例:TXFJ6/K6)會回傳 404,請改用 contractMonth 指定價差 |
date | string | 交易日(格式:yyyy-MM-dd),未帶時預設為今日 |
session | string | 交易時段,未帶時預設為 regular 日盤;可選 afterhours 夜盤(盤後交易時段) |
contractMonth | string | 只回傳此契約月份,未帶時回傳當日全部合約。可填:月份 yyyyMM(例:202610);週契約 yyyyMMWn(週三到期,例:202610W1)、yyyyMMFn(週五到期,例:202610F1);期貨價差為兩腳以 / 相連(例:202610/202611、202610W1/202610)。期貨另可填連續合約 1! 近月、2! 次近月、3! 第三近月(4! 以上回傳 400);選擇權不支援連續合約,帶入會回傳 400 |
info
- 日盤可回溯至 2010 年,夜盤自 2017-05-16 起。當日資料於盤後產出,約 17:30 後可查詢。
- 本端點一次查詢一個交易日,只接受
date、session、contractMonth三個查詢參數,from/to等其他參數不會生效。要取得單一合約跨日的序列,請改用 歷史K線。 - 查詢日為非交易日、資料尚未產出,或商品代號、契約月份不存在時,回傳 404 Resource Not Found。
- 夜盤依期交所規則歸屬次一交易日,例如
session=afterhours&date=2026-10-02回傳的是 2026-10-01 15:00 至 2026-10-02 05:00 這一場夜盤;日內行情與 WebSocket 則以 開盤當天為日期,兩者對照見 夜盤的日期歸屬。 data依到期日先後排列(例:202610F1、202610W1、202610F2、202610W2、202610F3、202610、202611),同一到期日再依履約價由低到高、買權在前;期貨價差列排在最後。- 期貨會一併回傳價差合約列,其
contractMonth為兩腳以/相連(例:202610/202611、202610W1/202610),可據此辨識或排除。
Response
| Name | Type | Description |
|---|---|---|
date* | string | 交易日 |
product* | string | 商品代號 |
exchange* | string | 交易所 |
session* | string | 盤別,REGULAR 日盤、AFTERHOURS 夜盤 |
contractMonth | string | 查詢時帶入的契約月份;帶入連續合約時為解析後的實際月份。未帶 contractMonth 時不回傳此欄位 |
data* | object[] | 日行情資料 |
data.contractMonth* | string | 契約月份:月份 yyyyMM、週契約 yyyyMMWn/yyyyMMFn、期貨價差為兩腳以 / 相連(例:202610/202611) |
data.strikePrice* | number | 履約價;期貨與價差列為 null |
data.callPut* | string | 買賣權別,CALL 買權、PUT 賣權;期貨與價差列為 null |
data.exchange* | string | 交易所 |
data.openPrice* | number | 開盤價;無成交為 null |
data.highPrice* | number | 最高價;無成交,或期交所未提供時為 null |
data.lowPrice* | number | 最低價;無成交,或期交所未提供時為 null |
data.closePrice* | number | 收盤價;無成交為 null |
data.change* | number | 漲跌(收盤價減前一交易日結算價);無成交與價差列為 null |
data.changePercent* | number | 漲跌幅(%);無成交,或期交所未提供時為 null |
data.volume* | number | 成交量(口數),無成交為 0;價差列為價差委託之間的成交量 |
data.volumeSpread* | number | 價差對單式委託的成交量,僅期貨價差列有值,其餘為 null;與 volume 口徑不同,不可相加 |
data.openInterest* | number | 未沖銷契約量;夜盤與價差列為 null |
data.settlementPrice* | number | 結算價;夜盤與價差列為 null |
Example
SDK 版本需求
SDK 範例需要 Node.js @fugle/marketdata v1.8.0/Python fugle-marketdata 2.8.0 以上。
期貨:某日全部月份
查詢臺股期貨 2026-10-02 日盤的全部月份,價差列排在最後:
- cURL
- Python
- Node.js
curl -X 'GET' \
'https://api.fugle.tw/marketdata/v1.0/futopt/historical/daily/TXF?date=2026-10-02' \
-H 'X-API-KEY: <YOUR_API_KEY>'
from fugle_marketdata import RestClient
client = RestClient(api_key = 'YOUR_API_KEY') # 輸入您的 API key
futopt = client.futopt # FutOpt REST API client
print(futopt.historical.daily(**{"product": "TXF", "date": "2026-10-02"}))
const { RestClient } = require('@fugle/marketdata');
const client = new RestClient({ apiKey: 'YOUR_API_KEY' });
client.futopt.historical.daily({ product: 'TXF', date: '2026-10-02' })
.then(data => console.log(data));
Response Body(節錄):
{
"date": "2026-10-02",
"product": "TXF",
"exchange": "TAIFEX",
"session": "REGULAR",
"data": [
{
"contractMonth": "202610",
"strikePrice": null,
"callPut": null,
"exchange": "TAIFEX",
"openPrice": 48552,
"highPrice": 48802,
"lowPrice": 48472,
"closePrice": 48671,
"change": -27,
"changePercent": -0.06,
"volume": 34014,
"volumeSpread": null,
"openInterest": 106691,
"settlementPrice": 48669
},
{
"contractMonth": "202611",
"strikePrice": null,
"callPut": null,
"exchange": "TAIFEX",
"openPrice": 48730,
"highPrice": 48981,
"lowPrice": 48668,
"closePrice": 48841,
"change": -17,
"changePercent": -0.03,
"volume": 450,
"volumeSpread": null,
"openInterest": 1445,
"settlementPrice": 48840
},
...
{
"contractMonth": "202610/202611",
"strikePrice": null,
"callPut": null,
"exchange": "TAIFEX",
"openPrice": 174,
"highPrice": 180,
"lowPrice": 173,
"closePrice": 180,
"change": null,
"changePercent": null,
"volume": 255,
"volumeSpread": 156,
"openInterest": null,
"settlementPrice": null
},
...
]
}
選擇權:指定契約月份
查詢臺指選擇權 2026-10-02 日盤 202610 月份的全部履約價:
- cURL
- Python
- Node.js
curl -X 'GET' \
'https://api.fugle.tw/marketdata/v1.0/futopt/historical/daily/TXO?date=2026-10-02&contractMonth=202610' \
-H 'X-API-KEY: <YOUR_API_KEY>'
from fugle_marketdata import RestClient
client = RestClient(api_key = 'YOUR_API_KEY') # 輸入您的 API key
futopt = client.futopt # FutOpt REST API client
print(futopt.historical.daily(**{"product": "TXO", "date": "2026-10-02", "contractMonth": "202610"}))
const { RestClient } = require('@fugle/marketdata');
const client = new RestClient({ apiKey: 'YOUR_API_KEY' });
client.futopt.historical.daily({ product: 'TXO', date: '2026-10-02', contractMonth: '202610' })
.then(data => console.log(data));
Response Body(節錄):
{
"date": "2026-10-02",
"product": "TXO",
"exchange": "TAIFEX",
"session": "REGULAR",
"contractMonth": "202610",
"data": [
...
{
"contractMonth": "202610",
"strikePrice": 47000,
"callPut": "CALL",
"exchange": "TAIFEX",
"openPrice": 1910,
"highPrice": 2060,
"lowPrice": 1870,
"closePrice": 1970,
"change": -20,
"changePercent": -1.01,
"volume": 17,
"volumeSpread": null,
"openInterest": 893,
"settlementPrice": 1930
},
{
"contractMonth": "202610",
"strikePrice": 47000,
"callPut": "PUT",
"exchange": "TAIFEX",
"openPrice": 330,
"highPrice": 340,
"lowPrice": 245,
"closePrice": 259,
"change": -35,
"changePercent": -11.9,
"volume": 280,
"volumeSpread": null,
"openInterest": 494,
"settlementPrice": 259
},
...
]
}
夜盤範例(連續合約)
帶 session=afterhours 查詢夜盤,並以連續合約 1! 只取近月。date 填夜盤所屬的交易日(2026-10-02),回傳的是 2026-10-01 15:00 起至 2026-10-02 05:00 的夜盤;頂層 contractMonth 為解析後的實際月份:
- cURL
- Python
- Node.js
curl -X 'GET' \
'https://api.fugle.tw/marketdata/v1.0/futopt/historical/daily/TXF?date=2026-10-02&session=afterhours&contractMonth=1!' \
-H 'X-API-KEY: <YOUR_API_KEY>'
from fugle_marketdata import RestClient
client = RestClient(api_key = 'YOUR_API_KEY') # 輸入您的 API key
futopt = client.futopt # FutOpt REST API client
print(futopt.historical.daily(**{"product": "TXF", "date": "2026-10-02", "session": "afterhours", "contractMonth": "1!"}))
const { RestClient } = require('@fugle/marketdata');
const client = new RestClient({ apiKey: 'YOUR_API_KEY' });
client.futopt.historical.daily({ product: 'TXF', date: '2026-10-02', session: 'afterhours', contractMonth: '1!' })
.then(data => console.log(data));
Response Body:
{
"date": "2026-10-02",
"product": "TXF",
"exchange": "TAIFEX",
"session": "AFTERHOURS",
"contractMonth": "202610",
"data": [
{
"contractMonth": "202610",
"strikePrice": null,
"callPut": null,
"exchange": "TAIFEX",
"openPrice": 48622,
"highPrice": 48661,
"lowPrice": 48210,
"closePrice": 48475,
"change": -223,
"changePercent": -0.46,
"volume": 37554,
"volumeSpread": null,
"openInterest": null,
"settlementPrice": null
}
]
}