floviq logo floviq
← 筆記 · 2026-06-20 · mechanics

三大法人期貨未平倉多空方向怎麼看:OpenInterest(Net) 才是淨部位,不是 Long

三大法人期貨未平倉多空方向怎麼看:OpenInterest(Net) 才是淨部位,不是 Long

只看 OpenInterest(Long) 就判斷外資偏多,抓到的是 gross 多單口數,不是方向——而空單可能遠多於多單,淨部位實際是大空頭。

TAIFEX 三大法人期貨端點同時提供三個 OI 欄位:OpenInterest(Long)(多方 gross)、OpenInterest(Short)(空方 gross)、OpenInterest(Net)(= Long − Short,淨方向)。以 2026-05-29 臺股期貨外資及陸資為例:Long 為 15,766 口,Short 為 76,416 口,Net 為 -60,650 口。若只讀 Long = 15,766,會得出「外資持有 1 萬多口多單」的結論;讀 Net = -60,650,才看到外資在臺股期貨上的淨方向是空方超過 6 萬口。

本文重點

  1. TAIFEX OpenInterest(Long) = gross 多單 · OpenInterest(Net) = Long − Short 才是方向判讀依據
  2. 同一法人、同一契約,Long 大不代表偏多——空方部位同樣可能更大
  3. 三種法人(外資、投信、自營商)的 Net 方向常常分歧,不能合併看

OpenInterest(Long) 和 OpenInterest(Net) 分別是什麼?

TAIFEX MarketDataOfMajorInstitutionalTradersDetailsOfFuturesContractsBytheDate 端點(以下簡稱「三大法人期貨端點」)的每筆回傳 record,代表特定日期、特定契約、特定法人類別的期貨部位快照。

同一筆 record 內有三個 OI 相關欄位(引用 TAIFEX OpenAPI 回傳欄位名稱,2026-05-29 實測):

欄位 key意義計算邏輯
OpenInterest(Long)該法人持有的多方未平倉口數(gross)僅計算多方合約數量
OpenInterest(Short)該法人持有的空方未平倉口數(gross)僅計算空方合約數量
OpenInterest(Net)淨方向口數Long − Short(正 = 淨多 · 負 = 淨空)

三個欄位同時存在同一 record 中。程式取值時,OpenInterest(Long)OpenInterest(Net) 是不同欄位,名稱相差一個字,但語義完全不同。


為什麼只看 Long 會誤判方向?

期貨交易的特性是,一個法人可以同時持有多方合約和空方合約——例如外資在台股期貨市場同時做多 1.5 萬口、做空 7.6 萬口,Long 數字是正的,但淨方向是空頭。

以 2026-05-29 臺股期貨三法人的實際 API 回傳為例(來源:TAIFEX OpenAPI,ContractCode: 臺股期貨):

法人(ItemOpenInterest(Long)OpenInterest(Short)OpenInterest(Net)
外資及陸資15,76676,416-60,650(淨空)
投信52,2285,302+46,926(淨多)
自營商6,6824,608+2,074(淨多)

如果程式只抓 OpenInterest(Long) 加總,得到三法人多單合計 = 74,676 口,結論是「法人多單豐厚、市場偏多」。但外資的 Net = -60,650 口是一個壓倒性的空頭淨部位,足以讓三法人合計 Net 轉為淨空方向——光看 Long 拿到的是 gross,根本看不到這個資訊。

正確計算三法人合計淨方向:(-60,650) + 46,926 + 2,074 = -11,650 口(淨空)


三個欄位的正確讀法

什麼時候用 OpenInterest(Long)

OpenInterest(Long) 是 gross 多方口數,本身在以下情境有用:

  • 計算做多規模(特定法人持有幾口多單)
  • 計算多方槓桿暴險(配合契約金額欄位 ContractValueofOpenInterest(Long)(Thousands)
  • 建立轉倉分析(某月份 Long 減少、下月份 Long 增加,是換月而非方向變化)

什麼時候必須用 OpenInterest(Net)

方向性判讀時,必須用 OpenInterest(Net)

  • 判斷法人整體是站多方還是空方
  • 追蹤法人淨部位的日間變化(Net 增加 = 往多方移動;Net 減少 = 往空方移動)
  • 計算多空比或市場情緒指標

OpenInterest(Net) 的欄位值本身已經是 Long − Short 的計算結果,API 直接回傳,不需要程式端另行相減——但前提是程式取對欄位名稱。


端點欄位結構與命名細節

TAIFEX 三大法人期貨端點的 JSON 欄位名稱含有括號(英文半形 ( )),取值時欄位 key 必須用完整字串:

// 來源: GET https://openapi.taifex.com.tw/v1/MarketDataOfMajorInstitutionalTradersDetailsOfFuturesContractsBytheDate
// 對齊 TAIFEX OpenAPI 2026-05-29 實測回傳欄位

// 正確取法:Net 方向
const oi_net = parseInt(record['OpenInterest(Net)'], 10);

// 誤用:只看 Long 當作方向
// const oi_long = parseInt(record['OpenInterest(Long)'], 10); // ← gross 不代表方向

// 篩選特定法人類別(外資及陸資)+ 特定契約(臺股期貨)
const foreign_tw_futures = data.find(
  r => r.ContractCode === '臺股期貨' && r.Item === '外資及陸資'
);
const foreign_net = parseInt(foreign_tw_futures['OpenInterest(Net)'], 10);
// 2026-05-29 實際值: -60650(淨空)

幾個命名細節需注意:

  • 欄位 key 中的括號是英文半形(不是全形)
  • Item 欄位值「外資及陸資」含「及陸資」四個字,程式做字串比對時若只寫 '外資' 會取值失敗且不報錯(靜默失敗)
  • 金額欄位 ContractValueofOpenInterest(Net)(Thousands) 的單位是千元(Thousands),不是元

三種法人的 Net 方向為何常常分歧?

三大法人(外資、投信、自營商)對台股期貨的操作邏輯不同,Net 方向時常相反,這是結構性現象:

外資及陸資

外資的期貨部位常與現貨持倉方向相反,原因是避險操作:外資在台股現貨市場持有大量多方部位(長期持股),在期貨市場建立空頭部位來對沖整體投資組合的下跌風險。外資 OpenInterest(Net) 為負(淨空)不一定等同「外資看空台股」,可能只是對沖現貨曝險。

投信

投信的期貨使用頻率相對低,部位規模通常比外資小,但方向性更強——投信較少做避險操作,其 OpenInterest(Net) 若為正(淨多),相對接近對市場方向的真實押注。

自營商

自營商的期貨操作以動態避險(Delta hedging)為主——自營商發行認購 / 認售權證後,需要持續調整期貨部位來維持中性暴險(Greeks 調整)。自營商每日的 OI 變動主要反映避險機械性調整,方向性訊號意義最低。

2026-05-29 自營商 OpenInterest(Net) = +2,074(淨多),但這個多頭方向背後很可能是為了對沖自營部門大量空方認購權證的 Delta 暴險,而非看多台股的主動押注。


與 TradingVolume(Net) 的差別

同一端點還提供 TradingVolume(Net) 欄位——容易與 OpenInterest(Net) 混淆,兩者的意義完全不同:

欄位代表什麼時間維度
TradingVolume(Net)當日新增多空成交量淨差當天的動作方向
OpenInterest(Net)截至當日累積多空未平倉淨部位目前持有的方向

TradingVolume(Net) 為正(多方當日成交多於空方),並不代表法人的未平倉方向是多頭——可能是當天大量新增多單,但累積空頭部位遠大於多頭,Net OI 仍然是空頭。反之亦然。

方向判讀時,OpenInterest(Net) 反映的是法人截至今日的「身價」,TradingVolume(Net) 反映的是「今天的動作」。兩個欄位需要分開解讀,不能混用。


正確取值的完整程式範例

// 取 TAIFEX 三大法人臺股期貨 Net OI(方向判讀)
// 來源: https://openapi.taifex.com.tw/v1/MarketDataOfMajorInstitutionalTradersDetailsOfFuturesContractsBytheDate

async function getTaifexTWFuturesOI() {
  const res = await fetch(
    'https://openapi.taifex.com.tw/v1/MarketDataOfMajorInstitutionalTradersDetailsOfFuturesContractsBytheDate'
  );
  const data = await res.json();

  // 篩選臺股期貨(大台)三大法人
  const twFutures = data.filter(r => r.ContractCode === '臺股期貨');

  // 取各法人 Net OI(淨方向)
  const result = {};
  for (const item of ['外資及陸資', '投信', '自營商']) {
    const row = twFutures.find(r => r.Item === item);
    if (!row) {
      // Item 字串比對失敗時靜默回傳 undefined,須明確處理
      throw new Error(`TAIFEX: ${item} row not found for 臺股期貨`);
    }
    result[item] = {
      long:  parseInt(row['OpenInterest(Long)'],  10), // gross 多單(不代表方向)
      short: parseInt(row['OpenInterest(Short)'], 10), // gross 空單
      net:   parseInt(row['OpenInterest(Net)'],   10), // 淨方向 = Long − Short
    };
  }

  return result;
}

// 2026-05-29 實際回傳(TAIFEX API 驗算):
// 外資及陸資: { long: 15766, short: 76416, net: -60650 }
// 投信:       { long: 52228, short:  5302, net: +46926 }
// 自營商:     { long:  6682, short:  4608, net:  +2074 }

已知邊界情況

換月期間的 OI 波動:期貨合約有到期日,靠近到期時大量部位需展倉(換至下一個月份合約)。展倉過程中,舊月份 OI 急降、新月份 OI 急升,但這並非方向性變化。觀察 Net OI 趨勢時,需留意結算日前後的換月效應。

臺股期貨的 ContractCode 中文字ContractCode 欄位值「臺股期貨」的「臺」是正體字(U+81FA),非「台股期貨」。程式字串比對若用「台股期貨」,會每次取值失敗且不報錯。

端點預設回傳最近交易日:三大法人期貨端點無需帶 date 參數,預設回傳最近交易日的資料。若需確認資料日期,應讀 Date 欄位(格式:西元 8 碼 YYYYMMDD,如 "20260529")。假日查詢時行為見 TWSE 與 TAIFEX 端點的假日 API 行為


See also


本文重點

  • OpenInterest(Long) 是 gross 多單口數:反映法人持有幾口多方合約,不代表多空淨方向
  • 淨方向必須讀 OpenInterest(Net):= Long − Short,正數代表淨多、負數代表淨空;端點已預先計算,直接取欄位即可
  • 三法人 Net OI 常相反:外資空頭不一定是方向性看空(常見為現貨避險);投信方向性最強;自營商以 Delta hedging 為主,方向訊號雜訊最大

如需自動化監控三大法人期貨淨部位,portaly.cc/floviq 的台股自動化工具集涵蓋相關端點整合,可進一步參考。


※ 本文描述 TAIFEX 三大法人期貨未平倉端點的欄位結構與正確取值方式,屬 API 資料結構客觀說明,不構成投資建議,投資請自行評估風險。

資料來源:TAIFEX OpenAPI v1 · TAIFEX swagger.json · TAIFEX 三大法人期貨端點實測樣本 (資料快照 2026-05-29) · Threads #35 2026-06-17