Đọc cột nào, thế nào là lớn, và 130% thực ra là 130% của ai.
Đặt dư nợ ký quỹ và chỉ số TAIEX lên cùng một biểu đồ thì hai đường gần như trùng khít — trong năm từ 2025-09-17 đến 2026-09-15, tương quan là +0.973. Bạn nghĩ mình đã tìm ra một chỉ báo. Nhưng kéo mẫu ra 5 năm thì cũng tương quan đó rơi xuống +0.417. Bài này nói dư nợ ký quỹ thực ra là gì, nên đọc cột nào, thế nào là lớn, và ba cách đọc sai mà văn bản chính thức cùng số liệu đo được sẽ tháo gỡ.
Dư nợ ký quỹ là lượng vị thế ký quỹ chưa hoàn trả của thị trường, đếm theo đơn vị giao dịch (lô); cùng báo cáo đó có một cột "giá trị ký quỹ" riêng, tính bằng nghìn TWD. Nó do các tổ chức cấp tín dụng (gồm công ty tài chính chứng khoán và các công ty chứng khoán tự thực hiện giao dịch ký quỹ) báo cáo, rồi TWSE tổng hợp và công bố.
Ba thuật ngữ liên tục bị lẫn lộn — tách chúng ra trước đã:
| Thuật ngữ | Là gì | Ai tính |
|---|---|---|
| Dư nợ ký quỹ | Vị thế ký quỹ chưa hoàn trả, tính bằng lô; có cột giá trị ký quỹ riêng tính bằng nghìn TWD | Tổ chức cấp tín dụng báo cáo, TWSE tổng hợp |
| Hạn mức ký quỹ | Quy tắc là 25% số cổ phiếu niêm yết của mã đó: chú thích báo cáo của TWSE ghi rõ "khi dư nợ ký quỹ đạt 25% số cổ phiếu niêm yết của mã đó, ngừng mua ký quỹ" và "khi dư nợ ký quỹ hoặc bán khống đạt tám phần mười hạn mức, việc phân bổ hạn mức diễn ra vào ngày làm việc kế tiếp" | Tính theo quy tắc; báo cáo công bố "hạn mức ngày làm việc kế tiếp" mỗi ngày |
| Tỷ lệ ký quỹ duy trì | Tỷ lệ tài sản bảo đảm duy trì trên toàn tài khoản; công thức xem phần "130% là 130% của ai" bên dưới | Công ty chứng khoán tính trên toàn tài khoản, không theo từng mã |
Sáu phần mười (60%) cho cả cổ phiếu niêm yết và OTC, với tỷ lệ ký quỹ bán khống tối thiểu là 130% — nguồn là lệnh của FSC số Jin-Guan-Zheng-Tou-Zi 1140381639, hiệu lực từ 2025-04-07. Rất nhiều bài trên mạng vẫn viết ký quỹ bán khống là 90%; đó là lệnh cũ đã bãi bỏ ngày 111-10-01, và nó đã lỗi thời.
Các cột trong thống kê giao dịch ký quỹ của TWSE là: khoản mục | mua | bán | hoàn trả bằng tiền (chứng khoán) | dư nợ ngày trước | dư nợ hôm nay. Trong nội bộ một phiên thì nó nhất quán — kiểm lại bằng số liệu ký quỹ toàn thị trường ngày 2026-09-15 (đơn vị lô):
9,165,719(dư nợ ngày trước) + 226,366(mua) − 197,887(bán) − 3,687(hoàn trả bằng tiền) = 9,190,511(dư nợ hôm nay)
Giá trị ký quỹ cùng ngày (nghìn TWD) cũng khớp theo đúng công thức đó: 583,877,609 + 16,290,924 − 17,615,398 − 312,670 = 582,240,465.
Vậy nên lời giải thích phổ biến rằng "hoàn trả bằng tiền bị trộn vào dư nợ ngày trước" là không đúng — hoàn trả bằng tiền là một cột riêng và đã được trừ khỏi dư nợ hôm nay. Các cột trong ngày không có vấn đề; vấn đề nằm ở chỗ bắc qua hai ngày.
TWSE nói thẳng trong chú thích báo cáo:
Đây không phải câu khách sáo. Đối chiếu thực tế (chuỗi dữ liệu ký quỹ của Blave, 3 năm gần nhất, chỉ lấy các phiên liền kề, loại bỏ chênh lệch giả do lỗ hổng dữ liệu):
| Cửa sổ | Số phiên | Dư nợ ngày trước (T) ≠ dư nợ hôm nay (T−1) | Trung vị chênh lệch | p90 | Lớn nhất |
|---|---|---|---|---|---|
| 3 năm gần nhất (từ 2023-09-17) | 720 | 670 phiên (93.1%) | 5 lô | 124 lô | 524,851 lô |
Phần lớn các phiên chỉ lệch vài lô, vô hại; nhưng thỉnh thoảng khoảng lệch lên tới sáu chữ số. Bản ghi ngày 2024-12-11 điều chỉnh mất 524,851 lô chỉ sau một đêm, tương đương khoảng 5.7% dư nợ toàn thị trường — bản ghi đó và khoản +99,692 lô ngày 2026-09-07 đều đã được đối chiếu lại với báo cáo gốc của TWSE, xác nhận đó là điều chỉnh bắc qua ngày trong chính dữ liệu chính thức, không phải do phía Blave xử lý ra. Về nguyên nhân, TWSE chỉ đưa quy tắc chung (điều chỉnh sổ sách ngày hôm sau, và điều chỉnh dư nợ ngày trước khi một mã OTC chuyển lên sàn niêm yết); chúng tôi chưa xác minh nguyên nhân từng trường hợp, nên bài này không suy đoán.
Có bị chỉnh lại, và sở giao dịch nói rõ điều đó. Nguyên văn chú thích báo cáo:
Điều này ngược hẳn với mua/bán ròng của tổ chức, vốn là một ảnh chụp "tổng hợp từ dữ liệu khớp lệnh gốc trong ngày và không lập lại theo dữ liệu đã điều chỉnh do công ty chứng khoán báo sai sổ hoặc sửa tài khoản" và không bao giờ bị chỉnh lại sau khi công bố (xem Dùng dữ liệu mua/bán ròng của tổ chức). Cả hai đều là dữ liệu dòng tiền, nhưng một bên bị chỉnh lại còn bên kia thì không, nên nghiên cứu không được xử lý chúng giống nhau.
Ngoài ra, thống kê giao dịch ký quỹ của TWSE bao phủ thị trường niêm yết (sàn chính TWSE); dữ liệu ký quỹ và bán khống của sàn OTC do TPEx công bố riêng. Khi ai đó nói "dư nợ ký quỹ toàn thị trường," mặc định là thị trường niêm yết.
Mức và thay đổi của dư nợ ký quỹ toàn thị trường (chuỗi dữ liệu ký quỹ của Blave, thị trường niêm yết):
| Chỉ tiêu | Giá trị | Cửa sổ |
|---|---|---|
| Dư nợ ký quỹ | 9,190,511 lô | 2026-09-15 (bản ghi mới nhất) |
| Giá trị ký quỹ | 5,822 (100M TWD) | Như trên |
| Biên độ dư nợ | 7,236,488 đến 9,618,551 lô | 2025-09-17 đến 2026-09-15, n=229 |
| Giá trị ký quỹ mỗi lô | 63,352 TWD (cùng cửa sổ, 36,381 đến 65,907) | Như trên |
Phân phối thay đổi theo phiên (dư nợ hôm nay − dư nợ ngày trước, tính bằng lô), cùng cửa sổ, n=229:
| p05 | p25 | Trung vị | p75 | p95 | Trung bình | Số phiên tăng |
|---|---|---|---|---|---|---|
| −129,474 | −29,967 | +16,379 | +45,366 | +110,320 | +7,362 | 59.8% |
Theo giá trị tuyệt đối: trung vị thay đổi 40,316 lô, p90 115,104 lô, lớn nhất kỳ 442,947 lô. Nói cách khác, thay đổi một phiên quanh 40,000 lô là bình thường, và phải vượt 115,000 mới lọt vào nhóm 10% dẫn đầu của cửa sổ này. Cũng lưu ý dư nợ tăng ở 59.8% số phiên — dư nợ ký quỹ vốn có xu hướng trôi lên, nên "hôm nay ký quỹ lại tăng" tự nó không phải một sự kiện.
Tương quan cao của mức đến từ một xu hướng chung, và nó thay đổi theo giai đoạn mẫu. Đo thực tế (chuỗi dữ liệu ký quỹ của Blave, so với TAIEX):
| Cửa sổ | n | Mức so với giá đóng cửa chỉ số | Thay đổi phiên so với lợi suất cùng phiên | Thay đổi phiên so với lợi suất phiên kế tiếp |
|---|---|---|---|---|
| 12 tháng (2025-09-17 đến 2026-09-15) | 229 | +0.973 | +0.595 | −0.069 |
| 5 năm (từ 2021-09-17) | 1,200 | +0.417 | +0.473 | −0.072 |
Ba điều cùng lúc. Thứ nhất, tương quan mức 0.973 trông như chén thánh, nhưng mẫu 5 năm chỉ cho 0.417 — cùng một chỉ báo, đổi giai đoạn mẫu, và kết luận rơi từ "gần như hoàn hảo" xuống "trung bình." Đó là cộng hưởng xu hướng, không phải quan hệ ổn định. Thứ hai, đổi sang lượng thay đổi thì tương quan cùng phiên rơi xuống quanh +0.595. Thứ ba, so với lợi suất phiên kế tiếp thì cả hai giai đoạn mẫu đều quanh −0.07, tức gần bằng không.
Mô thức này giống hệt mua/bán ròng của tổ chức: tương quan cao trong ngày, gần như tung đồng xu vào phiên kế tiếp. Dữ liệu dòng tiền cho bạn biết chuyện vừa xảy ra, không phải chuyện sắp tới.
Là của toàn tài khoản, không phải của riêng mã bạn đang giữ. Theo Quy tắc nghiệp vụ về giao dịch ký quỹ và bán khống chứng khoán của công ty chứng khoán (bản 115-01-09):
Vậy nên câu "rơi xuống 130% là bị cắt lỗ ép buộc" bỏ sót hai điều: con số được tính trên toàn tài khoản chứ không theo từng mã, và ở giữa còn có thời hạn nộp bổ sung.
Kèm một ví dụ đơn giản hóa: mua bằng ký quỹ sáu phần mười, tỷ lệ duy trì ngay lúc mở vị thế là 1 ÷ 0.6 = 166.7%; để rơi xuống 130% thì giá phải giảm 22% (130% × 60% = 78%). Ví dụ này giả định một vị thế duy nhất, không có tài sản bảo đảm khác và không có tài sản thay thế; trên thực tế toàn tài khoản còn giữ các vị thế khác nên con số sẽ khác.
Rất hiếm. Phân phối tỷ lệ ký quỹ duy trì toàn thị trường (2002-11-26 đến 2026-08-13, n=5,815, đơn vị: %):
| p01 | p05 | p10 | p25 | Trung vị | p75 | p90 | Lớn nhất |
|---|---|---|---|---|---|---|---|
| 124.4 | 135.8 | 141.6 | 153.4 | 164.0 | 170.6 | 175.9 | 210.4 |
Đối chiếu với các ngưỡng: số phiên dưới 130% chiếm 2.39% (139 phiên trong 23 năm, tập trung vào 2002–2004 và 2008), dưới 140% chiếm 8.31%, và dưới 150% chiếm 20.53%. Mức thấp nhất kể từ 2021 là 130.36% vào ngày 2025-04-09. Trong năm kết thúc ngày 2026-08-13 (n=243), biên độ là 156.7 đến 210.4, với 194.7 vào phiên cuối cùng đó.
from lib.data import fetch_twmarket_margin
m = fetch_twmarket_margin('2025-09-17', '2026-09-15', headers)
# các trường: margin_balance / margin_balance_prev (lô), margin_balance_value (TWD),
# short_balance / short_balance_prev (lô), từ 2001-01-03
# đúng: trừ trong cùng dòng — đây chính là định nghĩa của báo cáo
m['margin_chg'] = m['margin_balance'] - m['margin_balance_prev']
# sai: trừ qua các dòng sẽ trộn điều chỉnh sổ sách qua đêm vào thay đổi trong ngày
m['margin_chg_wrong'] = m['margin_balance'].diff()
Từ 2023-09-17 đến 2026-09-15, hai cách tính cho kết quả khác nhau ở 93.1% số phiên. Phần lớn thời gian khoảng lệch chỉ vài lô, nhưng chỉ cần một phiên lệch 520,000 lô là tín hiệu của bạn đã bị cú nhảy giả của phiên đó kéo đi.
Lớp từng mã đi qua endpoint API /studio/market/twstock/margin/<stock_id>, ở đó tên trường hơi khác: theo mã thì chúng là margin_balance và margin_prev_balance (chú ý prev nằm ở vị trí khác so với bộ toàn thị trường), và đơn vị vẫn là lô.
# các mức lấy từ phân vị giá trị tuyệt đối thay đổi theo phiên, 2025-09-17 đến 2026-09-15: trung vị 40,316 lô, p90 115,104 lô (n=229) BIG = 115_000 # lô; đây là mức của dữ liệu, không phải tham số đã backtest surge = m['margin_chg'] > BIG signal = primary.copy() # primary là tín hiệu chính của bạn signal[surge] = 0.0 # đứng ngoài vào những phiên ký quỹ tăng vọt
Nhắc lại lần nữa: ngưỡng này trả lời "con số hôm nay đứng thứ mấy trong lịch sử," không trả lời "làm vậy có lãi không." Chỉ backtest trả lời được vế sau, và bạn phải cẩn thận với việc chỉnh tham số lặp đi lặp lại trên cùng một đoạn dữ liệu (xem Cách tránh overfitting).
Tỷ lệ ký quỹ duy trì toàn thị trường hiện xem được ở trang cổ phiếu Đài Loan của Studio, mục "Thị trường | Ký quỹ & bán khống" (ký quỹ và bán khống toàn thị trường); các hàm dữ liệu của Agent không có chuỗi này — nên hiện tại chưa thể đưa tỷ lệ duy trì vào chiến lược.
Dư nợ ký quỹ là dữ liệu theo ngày; thứ bạn chọn được là đọc cột nào, đọc lớp nào, và trong bao nhiêu ngày.
| Cách lấy | Phù hợp cho | Cần lưu ý |
|---|---|---|
| Dư nợ hôm nay − dư nợ ngày trước (cùng dòng) | Tính thay đổi ký quỹ trong ngày; cách mặc định cho nghiên cứu | Đây là định nghĩa chính thức; các mức xem bảng biên độ (trung vị 40,316 lô, p90 115,104 lô) |
| Trừ dư nợ hôm nay qua các dòng | Không khuyến nghị | Ở 93.1% số phiên nó trộn vào điều chỉnh sổ sách qua đêm; khoảng lệch lớn nhất là 524,851 lô |
| Mức dư nợ ký quỹ | Mô tả đòn bẩy thị trường đang cao hay thấp | Cộng hưởng mạnh với chỉ số (12 tháng r=+0.973, 5 năm +0.417) và tự nó không thêm thông tin xu hướng nào |
| Dư nợ ký quỹ theo mã | Điều kiện dòng tiền theo mã | Đơn vị là lô; trường là margin_prev_balance — đừng nhầm với cách viết của bộ toàn thị trường |
Các ví dụ ở đây dùng phép trừ cùng dòng ở toàn thị trường, vì toàn bộ phép đo biên độ và tương quan đều thực hiện ở lớp đó nên các ngưỡng mới khớp; chuyển sang lớp từng mã thì phải tính lại các mức từ phân phối của chính mã đó.
Giờ bạn đã biết đọc cột nào, bước tiếp theo là biến nó thành một điều kiện kiểm chứng được: bảo Blave Agent kéo dữ liệu này về, tính thay đổi bằng phép trừ cùng dòng, viết thành bộ lọc và backtest cho bạn xem — lớp dữ liệu và các trường đã nối sẵn. Bạn cũng có thể xem thẳng biểu đồ trong Studio: ký quỹ và bán khống toàn thị trường, ký quỹ và bán khống theo mã.