TW Market Data LogoTW Market Data

Core data

Market & prices

TWSE / TPEx daily bars, adjusted prices, indices, and market breadth

Financials & growth

Monthly revenue, the three financial statements, financial metrics, and valuation data

Flows & positioning

Institutional investors and margin & short-selling data

Company & structure

Company & events

Company profiles, disclosures, events, corporate actions, and dividends

Taxonomy & structure

Theme taxonomy, index classification, and cross-dataset mapping

Strategy & quant

Features, factor data, time alignment, and screener

Platform capabilities

API access

REST API, authentication, and your first request

Query & tools

Search API, Query API, field lists, and query examples

Tools / MCP

Agent workflows, MCP tools, and the OpenAPI entry point

PricingDocsBlog
中文Dashboard

TW Market Data (TWMD) provides historical data and statistics, not investment advice; investment decisions and their risks are your own.

Privacy Policy|Terms of Service|Help Center||中文|TW Market Data © 2026

Answer

Taiwan's Three Institutional Investors (三大法人) Explained for Quant Developers

Taiwan's three institutional investors — foreign investors (外資), investment trusts (投信) and dealers (自營商), collectively the 三大法人 — are the institutional buy/sell aggregates the Taiwan Stock Exchange publishes after every trading day in its T86 report. For each listed stock you get the net shares each group bought or sold that day. It is a clean, official daily signal — but it is aggregate net flow, not order-level data.

Who the three are

  • Foreign investors (外資) — offshore institutions trading Taiwan equities (the largest and most watched group). Their net buying/selling is treated as a directional signal by most desks.
  • Investment trusts (投信) — domestic Taiwanese fund houses (mutual funds). Often used as a 'local smart money' read, especially near quarter-end window-dressing.
  • Dealers (自營商) — the proprietary and hedging books of brokerage firms. The smallest of the three and the noisiest, since a chunk is hedging rather than a directional view.

When and how the data is published

The Taiwan Stock Exchange publishes the T86 report after market close on each trading day (typically the same evening). It is one row per stock per trading day — end-of-day, not intraday. There is no live/streaming version of institutional flow; you get the settled daily figure once, after the session. For point-in-time correctness this matters: a signal computed 'as of' a given trading day should only use T86 rows whose publication time is on or before that day, otherwise you are peeking at flow that was not public when your model would have traded. Treat the flow for date D as knowable only after D's close.

How to read it — a real example

Query the institutional-flow dataset by symbol and date range. This is a real request and a real response row for TSMC (2330) on 2026-07-17:

curl "https://api.twmarketdata.com/v2/datasets/institutional-flow?symbol=2330&start_date=2026-06-01&end_date=2026-07-15" \
  -H "X-API-Key: sk_live_..."

# One real response row (2330, 2026-07-17):
# {
#   "symbol": "2330",
#   "date": "2026-07-17",
#   "foreign_net_buy_sell": -44183964.0,
#   "investment_trust_net_buy_sell": 1488520.0,
#   "dealer_net_buy_sell": 2759348.0,
#   "total_institutional_net_buy_sell": -39936096.0,
#   "source_role": "official_twse_t86"
# }

The fields you actually use

  • foreign_net_buy_sell — foreign investors' net shares (buy minus sell). Negative means net selling; on 2026-07-17 it was -44,183,964 for 2330.
  • investment_trust_net_buy_sell / dealer_net_buy_sell — the same net-share figure for trusts (+1,488,520) and dealers (+2,759,348).
  • total_institutional_net_buy_sell — the three summed (-39,936,096). source_role traces every row to the official TWSE T86 report.
  • Common use: count consecutive days of foreign net buying, or rank stocks by trust net flow near quarter-end.

Build a signal: a foreign-buying streak

A simple, widely-used read is the foreign net-buying streak — how many consecutive trading days foreign investors have been net buyers of a stock. Sort the rows by date and count the run of positive foreign_net_buy_sell values; a break resets it. Because the flow for each day is only public after that day's close, the streak as of today uses data through the prior session, which keeps it point-in-time safe.

import requests

rows = requests.get(
    "https://api.twmarketdata.com/v2/datasets/institutional-flow",
    params={"symbol": "2330", "start_date": "2026-06-01", "end_date": "2026-07-15"},
    headers={"X-API-Key": "sk_live_..."},
).json()["rows"]

streak = 0
for r in sorted(rows, key=lambda x: x["date"]):
    streak = streak + 1 if r["foreign_net_buy_sell"] > 0 else 0
print("current foreign net-buying streak:", streak, "days")

How the three are used in practice

The three groups are read differently. Foreign flow is the headline directional signal because foreigns hold the largest share of the free float in the large-cap names; a sustained foreign net-buy run in a stock like 2330 is watched closely. Investment-trust flow is read as domestic conviction and gets extra attention near quarter- and year-end, when funds are widely believed to shade positions for reporting (window dressing). Dealer flow is the noisiest of the three: a meaningful part is hedging against warrants and other book positions rather than a directional bet, so it is usually used as a secondary confirmation, not a standalone signal.

What this data does NOT tell you

The T86 figures are aggregate daily net flow, and it is worth being explicit about the gaps rather than letting a model assume them (these permanent limits are declared in /meta/boundaries):

  • No order flow — you see one net number per group per day, not individual orders, order sizes, or intraday timing. Don't reconstruct microstructure from it.
  • No foreign cost basis — the figure is net shares, not the price foreign investors paid or their average holding cost. You cannot infer their P&L or entry price from this dataset.
  • It is net, not gross: a small net number can hide large offsetting buys and sells.

Related

Institutional-flow dataset (docs)Institutional investor flow dataPrice-limit history (7%→10%)API docs