Strasmore Research
Tổng hợp thị trường Matt ConnorBởi Matt Connor · Cập nhật 2026-07-23 · data as of July 23, 2026 · refreshed weekly

Hoạt động options bất thường phiên gần nhất

Danh sách các mã chứng khoán có khối lượng options vượt xa mức trung bình hai mươi phiên gần đây, cùng tỷ lệ phân bổ giữa calls và puts.

Hoạt động options bất thường nghĩa là một mã chứng khoán cơ sở có lượng hợp đồng options giao dịch trong một phiên cao hơn nhiều so với mức bình thường gần đây. Bảng này xếp hạng dựa trên phiên options vừa kết thúc, Jul 21: tổng số hợp đồng đã giao dịch so với mức trung bình của cùng mã chứng khoán đó trong 20 phiên trước đó. Dữ liệu options thường được cập nhật chậm hơn dữ liệu cổ phiếu, vì vậy phiên được nêu ở đây là phiên hoàn chỉnh mới nhất trong dữ liệu của chúng tôi chứ không phải là phiên hôm nay.

Một điểm cần làm rõ trước khi xem bảng: đây là bộ lọc khối lượng. Hầu hết các cảnh báo options bất thường được công bố thường so sánh khối lượng trong ngày với open interest (số lượng hợp đồng chưa tất toán sau khi đóng cửa). Dữ liệu options mà chúng tôi lưu trữ bao gồm các giao dịch, không phải các vị thế, và không có trường dữ liệu open interest nào trong đó. Mọi tỷ lệ dưới đây đều so sánh khối lượng của một mã chứng khoán cơ sở với lịch sử khối lượng của chính nó. Khối lượng options so với open interest giải thích ý nghĩa của từng phép đo.

Hoạt động quyền chọn bất thường: phiên giao dịch gần nhất đã hoàn tất

Truy vấnHoạt động options bất thường: phiên vừa qua so với trung bình 20 phiên của chính mã đó
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH tape AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           sum(toFloat64(volume)) AS vol
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime(today() - 45, 'America/New_York')
    GROUP BY d
),
ranked AS (
    SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS raw_rn
    FROM tape
),
cal AS (
    SELECT d, vol, rn, sum(if(rn BETWEEN 2 AND 21, 1, 0)) OVER () AS baseline_sessions
    FROM (
        SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS rn
        FROM ranked
        WHERE vol >= 0.75 * (SELECT quantileExact(0.5)(vol) FROM ranked WHERE raw_rn > 1)
    )
),
day_root AS (
    SELECT substring(ticker, 3, length(ticker) - 17) AS root,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           sum(toFloat64(volume)) AS vol
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime(today() - 45, 'America/New_York')
    GROUP BY root, d
),
scored AS (
    SELECT r.root AS root,
           sumIf(r.vol, c.rn = 1) AS last_vol,
           avgIf(r.vol, c.rn BETWEEN 2 AND 21) AS base_vol,
           maxIf(r.vol, c.rn BETWEEN 2 AND 21) AS prior_high,
           countIf(c.rn BETWEEN 2 AND 21) AS root_sessions,
           max(c.baseline_sessions) AS baseline_session_count,
           maxIf(toYYYYMMDD(c.d), c.rn = 1) AS session_id,
           maxIf(formatDateTime(c.d, '%b %e'), c.rn = 1) AS session_label
    FROM day_root r INNER JOIN cal c ON r.d = c.d
    WHERE c.rn <= 21
      AND r.root NOT IN ('SPCX')
      AND r.root NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
    GROUP BY r.root
    HAVING last_vol >= 25000 AND base_vol >= 5000 AND root_sessions >= 18
)
SELECT root AS ticker,
       round(last_vol / base_vol, 1) AS vol_ratio,
       round(last_vol / 1000, 1) AS session_volume_k,
       round(base_vol / 1000, 1) AS baseline_volume_k,
       round(prior_high / 1000, 1) AS prior_high_volume_k,
       session_label,
       session_id,
       baseline_session_count
FROM scored
ORDER BY vol_ratio DESC, ticker ASC
LIMIT 10

Bảng dữ liệu gồm ba cột chính. Cột tỷ lệ (ratio) cho biết khối lượng giao dịch của tài sản cơ sở cao hơn mức trung bình bao nhiêu lần. Cột cơ sở (baseline) cho biết mức trung bình bình thường là bao nhiêu; một tỷ lệ lớn so với một chuỗi giao dịch thưa thớt sẽ là sự kiện nhỏ hơn so với một tỷ lệ khiêm tốn so với một chuỗi giao dịch dày đặc. Cột mức cao nhất 20 phiên cho biết phiên này có vượt qua bất kỳ mức nào trong tháng trước hay không. Ba cột cuối cùng là dấu vết kiểm chứng: phiên giao dịch dùng để xây dựng bảng dữ liệu (được hiển thị dưới dạng nhãn và số nguyên), cùng với số lượng các phiên hợp lệ làm cơ sở cho mức trung bình (phải đủ 20 phiên để trang web hiển thị dữ liệu).

ASST2 dẫn đầu bảng với mức 6.7 lần so với trung bình của chính nó: 76 nghìn hợp đồng so với mức cơ sở 11.3 nghìn, với mức cao nhất 20 phiên trước đó là 201.1 nghìn.

  • MMM ở mức 6.3 lần: 64.9 nghìn hợp đồng so với mức cơ sở 10.4 nghìn.
  • DHR ở mức 5.2 lần, đạt 28.6 nghìn hợp đồng trên mức cơ sở 5.5 nghìn.
  • GM ở mức 3.5 lần, đạt 58.8 nghìn hợp đồng so với mức cao nhất 20 phiên là 57.2 nghìn.
  • CVS ở mức 3.2 lần với 59.3 nghìn hợp đồng.

Dòng cuối cùng của bảng, HAL, vẫn giao dịch ở mức 2.6 lần so với trung bình của chính nó. Tỷ lệ và quy mô là hai chỉ số riêng biệt, đó là lý do tại sao cả hai đều xuất hiện trên bảng. Phiên bản tương tự dành cho thị trường cổ phiếu nằm tại các cổ phiếu có khối lượng bất thường trong tuần này, và các phép tính toán được thực hiện trong khối lượng tương đối.

Calls hay puts: góc nhìn từ dòng lệnh

Sự chênh lệch giữa khối lượng call và put là nội dung chính mà một cảnh báo thực sự muốn chỉ ra. Cùng một bảng, cùng một phiên, được sắp xếp theo tỷ lệ call:

Truy vấnCalls hoặc puts: khối lượng hợp đồng call và put của board trong cùng một phiên
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH tape AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           sum(toFloat64(volume)) AS vol
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime(today() - 45, 'America/New_York')
    GROUP BY d
),
ranked AS (
    SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS raw_rn
    FROM tape
),
cal AS (
    SELECT d, vol, rn, sum(if(rn BETWEEN 2 AND 21, 1, 0)) OVER () AS baseline_sessions
    FROM (
        SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS rn
        FROM ranked
        WHERE vol >= 0.75 * (SELECT quantileExact(0.5)(vol) FROM ranked WHERE raw_rn > 1)
    )
),
day_root AS (
    SELECT substring(ticker, 3, length(ticker) - 17) AS root,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           sum(toFloat64(volume)) AS vol,
           sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C') AS calls,
           sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P') AS puts
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime(today() - 45, 'America/New_York')
    GROUP BY root, d
),
scored AS (
    SELECT r.root AS root,
           round(sumIf(r.vol, c.rn = 1) / avgIf(r.vol, c.rn BETWEEN 2 AND 21), 1) AS vol_ratio,
           sumIf(r.calls, c.rn = 1) AS calls,
           sumIf(r.puts, c.rn = 1) AS puts,
           maxIf(toYYYYMMDD(c.d), c.rn = 1) AS session_id
    FROM day_root r INNER JOIN cal c ON r.d = c.d
    WHERE c.rn <= 21
      AND r.root NOT IN ('SPCX')
      AND r.root NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
    GROUP BY r.root
    HAVING sumIf(r.vol, c.rn = 1) >= 25000
       AND avgIf(r.vol, c.rn BETWEEN 2 AND 21) >= 5000
       AND countIf(c.rn BETWEEN 2 AND 21) >= 18
),
board AS (
    SELECT root, vol_ratio, calls, puts, session_id
    FROM scored
    ORDER BY vol_ratio DESC, root ASC
    LIMIT 10
)
SELECT root AS ticker,
       round(calls / 1000, 1) AS call_volume_k,
       round(puts / 1000, 1) AS put_volume_k,
       round(100.0 * calls / (calls + puts), 0) AS call_share_pct,
       session_id
FROM board
WHERE calls + puts > 0
ORDER BY call_share_pct DESC, ticker ASC

Ở nhóm có lượng call lớn, ASST2 đã chuyển 100% hợp đồng sang call: 76 nghìn call so với 0 nghìn put. Ở đầu ngược lại của cùng một bảng, WBD đã thực hiện 25% call, với 78.6 nghìn so với 239.7 nghìn put.

Sự phân tách đó đáng để theo dõi nhưng cũng rất dễ bị hiểu sai. Mỗi hợp đồng được khớp đều có một người mua và một người bán, và dòng lệnh không ghi lại bên nào là bên chủ động thực hiện lệnh. Khối lượng call lớn có thể là một vị thế long thuần túy hoặc là một lệnh bán covered call dựa trên cổ phiếu mà người bán đã sở hữu sẵn. Mua và bán hợp đồng quyền chọn call giải thích chi tiết về rủi ro mà mỗi bên trong giao dịch đó phải chịu. Khi dòng lệnh biến động mạnh, giá option thường cũng biến động mạnh, đây là chủ đề của bảng các cổ phiếu có implied volatility cao nhất.

Thành phần các hợp đồng trong phiên

Truy vấnCấu trúc hợp đồng trong phiên: khối lượng options theo số ngày đến khi expiry
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH tape AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           sum(toFloat64(volume)) AS vol
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime(today() - 45, 'America/New_York')
    GROUP BY d
),
ranked AS (
    SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS raw_rn
    FROM tape
),
cal AS (
    SELECT d, vol, rn, sum(if(rn BETWEEN 2 AND 21, 1, 0)) OVER () AS baseline_sessions
    FROM (
        SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS rn
        FROM ranked
        WHERE vol >= 0.75 * (SELECT quantileExact(0.5)(vol) FROM ranked WHERE raw_rn > 1)
    )
),
bars AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           toFloat64(volume) AS v,
           toDate(concat('20', substring(ticker, length(ticker) - 14, 2), '-',
                         substring(ticker, length(ticker) - 12, 2), '-',
                         substring(ticker, length(ticker) - 10, 2))) AS expiry
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime(today() - 12, 'America/New_York')
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM cal WHERE rn = 1)
),
scored AS (
    SELECT multiIf(expiry - d <= 0, 1, expiry - d <= 7, 2, expiry - d <= 30, 3,
                   expiry - d <= 90, 4, expiry - d <= 365, 5, 6) AS bk,
           v, d
    FROM bars
)
SELECT arrayElement(['same day', '1 to 7 days', '8 to 30 days', '31 to 90 days', '91 to 365 days', 'over a year'], bk) AS dte_bucket,
       round(sum(v) / 1e6, 2) AS contracts_m,
       round(100.0 * sum(v) / sum(sum(v)) OVER (), 1) AS pct_of_volume,
       toYYYYMMDD(max(d)) AS session_id
FROM scored
GROUP BY bk
ORDER BY bk ASC

Các hợp đồng đáo hạn trong ngày chiếm 29.7% tổng lượng của phiên, tương đương 16.85 triệu hợp đồng. Thêm 30.8% hợp đồng khác đáo hạn trong vòng một tuần. Cuối cùng, các hợp đồng có thời hạn trên một năm chiếm 2.1%.

Cơ cấu này làm thay đổi cách hiểu về các tiêu đề có hoạt động bất thường. Phần lớn khối lượng giao dịch trong các bảng dữ liệu như thế này là các hợp đồng ngắn hạn, và các hợp đồng đáo hạn trong ngày sẽ được thanh toán khi kết thúc phiên thay vì được tiếp tục nắm giữ. Quyền chọn 0DTE bao gồm nhóm hợp đồng đó.

Đây có phải là phiên đáo hạn không?

Khối lượng giao dịch options tăng trên toàn thị trường vào kỳ đáo hạn hàng tháng, khi một lượng lớn các hợp đồng niêm yết cùng kết thúc một lúc. Một bộ lọc tỷ lệ (ratio screen) chạy vào ngày đáo hạn sẽ đánh dấu một nửa thị trường, vì vậy bảng dưới đây sẽ dán nhãn cho mọi phiên trong khung thời gian này.

Truy vấnKhối lượng options toàn thị trường theo phiên, kèm nhãn ngày expiry hàng tháng
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH tape AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           sum(toFloat64(volume)) AS vol
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime(today() - 45, 'America/New_York')
    GROUP BY d
),
ranked AS (
    SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS raw_rn
    FROM tape
),
cal AS (
    SELECT d, vol, rn, sum(if(rn BETWEEN 2 AND 21, 1, 0)) OVER () AS baseline_sessions
    FROM (
        SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS rn
        FROM ranked
        WHERE vol >= 0.75 * (SELECT quantileExact(0.5)(vol) FROM ranked WHERE raw_rn > 1)
    )
),
w AS (
    SELECT d, vol,
           toStartOfMonth(d) + toIntervalDay(((5 - toDayOfWeek(toStartOfMonth(d)) + 7) % 7) + 14) AS third_friday
    FROM cal
    WHERE rn <= 25
),
marked AS (
    SELECT d, vol,
           (d = max(if(d <= third_friday, d, toDate('1970-01-01'))) OVER (PARTITION BY toStartOfMonth(d)))
             AND (third_friday <= max(d) OVER ()) AS is_expiry
    FROM w
),
latest AS (
    SELECT d, vol, is_expiry,
           max(if(is_expiry, d, toDate('1970-01-01'))) OVER () AS last_expiry_d
    FROM marked
)
SELECT formatDateTime(d, '%b %e') AS session,
       round(vol / 1e6, 1) AS contracts_m,
       multiIf(is_expiry, 'monthly expiration', 'ordinary') AS session_type,
       round(max(if(d = last_expiry_d, vol, 0)) OVER () / 1e6, 1) AS monthly_expiry_m,
       toYYYYMMDD(d) AS session_id
FROM latest
ORDER BY d ASC

Phiên mới nhất trong bảng này là phiên mà bảng báo cáo, có cùng ngày ở cả hai bảng, và nhãn của nó là ordinary. Phiên này đã ghi nhận 56.8 triệu hợp đồng trên toàn bộ thị trường Mỹ. Kỳ đáo hạn hàng tháng gần nhất trong cùng khung thời gian này ghi nhận 76.8 triệu hợp đồng. Đường cơ sở 20 phiên đằng sau mỗi tỷ lệ trên bảng thường chứa chính xác một kỳ đáo hạn hàng tháng, do đó mẫu số sẽ giữ nguyên giá trị lớn đó qua từng phiên.

Hoạt động options bất thường có dẫn dắt cổ phiếu không?

Câu hỏi cần giải đáp là liệu một phiên giao dịch options lớn có kéo theo biến động mạnh ở tài sản cơ sở hay không. Dữ liệu được đo lường trong 200 ngày qua: mọi phiên giao dịch vượt ngưỡng khối lượng tương ứng, được phân loại theo tỷ lệ, so sánh với mức thay đổi tuyệt đối của giá đóng cửa tài sản cơ sở trong phiên kế tiếp. Cột điển hình là mức thay đổi trung vị hàng ngày của chính mã đó trong suốt giai đoạn nghiên cứu, do đó mỗi nhóm được so sánh với chính nó.

Truy vấnDiễn biến sau phiên options lớn: biến động tuyệt đối phiên kế tiếp so với cùng mã đó trong ngày bình thường
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH daily AS (
    SELECT underlying_symbol AS sym,
           date AS d,
           sum(volume) AS vol,
           max(underlying_close) AS px
    FROM global_markets.options_greeks
    WHERE date >= today() - 200
      AND underlying_close > 0
      AND underlying_symbol NOT IN ('SPCX')
      AND underlying_symbol NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
      AND underlying_symbol NOT IN (SELECT ticker FROM global_markets.stocks_splits
                                    WHERE execution_date BETWEEN today() - 230 AND today())
    GROUP BY sym, d
),
seq AS (
    SELECT sym, d, vol, px,
           avg(vol) OVER (PARTITION BY sym ORDER BY d ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS base,
           count() OVER (PARTITION BY sym ORDER BY d ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS base_n,
           any(px) OVER (PARTITION BY sym ORDER BY d ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) AS next_px,
           any(px) OVER (PARTITION BY sym ORDER BY d ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_px
    FROM daily
),
moves AS (
    SELECT sym, vol, base, base_n,
           if(next_px > 0, 100 * abs(next_px / px - 1), -1) AS next_abs,
           if(next_px > 0, 100 * (next_px / px - 1), -999) AS next_signed,
           if(prev_px > 0, 100 * abs(px / prev_px - 1), -1) AS own_abs
    FROM seq
),
typical AS (
    SELECT sym, quantileExact(0.5)(own_abs) AS typ
    FROM moves
    WHERE own_abs >= 0
    GROUP BY sym
)
SELECT arrayElement(['5x or more', '3x to 5x', '2x to 3x', '1x to 2x', 'below 1x'], bk) AS rvol_bucket,
       count() AS event_count,
       round(quantileExact(0.5)(next_abs), 2) AS median_next_move_pct,
       round(quantileExact(0.5)(typ), 2) AS median_typical_move_pct,
       round(quantileExact(0.5)(next_abs) - quantileExact(0.5)(typ), 2) AS gap_pp,
       round(quantileExact(0.5)(next_signed), 2) AS median_next_signed_pct
FROM (
    SELECT m.sym AS sym,
           multiIf(m.vol / m.base >= 5, 1, m.vol / m.base >= 3, 2, m.vol / m.base >= 2, 3,
                   m.vol / m.base >= 1, 4, 5) AS bk,
           m.next_abs AS next_abs,
           m.next_signed AS next_signed,
           t.typ AS typ
    FROM moves m INNER JOIN typical t ON m.sym = t.sym
    WHERE m.base_n = 20 AND m.base >= 5000 AND m.vol >= 25000 AND m.next_abs >= 0
)
GROUP BY bk
ORDER BY bk ASC

Sau một phiên giao dịch đạt mức gấp năm lần so với mức cơ sở của chính nó, mức thay đổi tuyệt đối trung vị trong phiên kế tiếp là 2.61%, so với 1.96% của các mã đó trong một ngày bình thường, chênh lệch 0.65 điểm phần trăm. Ở nhóm có hoạt động thấp nhất, hai cột lần lượt là 1.89% và 2.09%, chênh lệch -0.2 điểm.

Câu trả lời thực tế là con số này rất nhỏ, và nó thiên về quy mô biến động hơn là hướng đi của giá. Các phiên giao dịch options lớn hơn thường theo sau bởi các biến động lớn hơn một chút về giá trị tuyệt đối, và khoảng cách ở mức trung vị chỉ là một phần nhỏ của một điểm phần trăm. Mức thay đổi có dấu trung vị trong phiên sau một ngày giao dịch gấp năm lần là -0.35%, và sau một ngày dưới mức cơ sở là -0.04%. Không có con số nào đạt mức biến động như các tiêu đề báo chí thường gợi ý. Sự hiếm gặp cũng cần được lưu ý: có 640 phiên giao dịch vượt gấp năm lần mức cơ sở trong suốt giai đoạn nghiên cứu, so với 11567 phiên giao dịch dưới mức đó.

Cách tính toán bảng xếp hạng này

Một bảng xếp hạng dựa trên các quy tắc ẩn thực chất là các ý kiến cá nhân được trình bày dưới dạng dữ liệu, vì vậy mọi quy tắc đều được liệt kê tại đây.

  1. Nguồn dữ liệu. Dữ liệu giao dịch options theo phút đầy đủ của Mỹ. Tài sản cơ sở được trích xuất từ symbol OCC của mỗi hợp đồng, do đó bao gồm cả các root của index option và các hợp đồng đáo hạn trong ngày, bên cạnh các chuỗi cổ phiếu và quỹ thông thường.
  2. Tỷ lệ. Tổng volume hợp đồng của phiên vừa kết thúc chia cho mức trung bình của cùng tài sản cơ sở đó trong 20 phiên đủ điều kiện trước đó. Ít nhất 18 trong số 20 phiên đó phải có volume. Bảng sẽ hiển thị độ dài cửa sổ thời gian trong một cột riêng; nếu cửa sổ không đủ 20 phiên, bảng sẽ giữ nguyên trạng thái thay vì công bố mức trung bình ngắn hơn dưới nhãn 20 phiên.
  3. Ngưỡng tối thiểu. 25,000 hợp đồng trong một phiên và mức cơ sở 5,000 hợp đồng. Nếu không có các ngưỡng này, bảng sẽ bị lấp đầy bởi các chuỗi dữ liệu mà ở đó chỉ một lệnh giao dịch cũng có thể tạo ra mức đọc gấp 10 lần.
  4. Điều kiện phiên giao dịch. Mỗi bảng trên trang này đọc dữ liệu phiên từ một cửa sổ 45 ngày của cùng một nguồn dữ liệu, theo một quy tắc: một phiên chỉ được tính khi volume toàn thị trường đạt 75% mức trung vị của các phiên cũ hơn trong cửa sổ đó. Ngày mới nhất không được tính vào mức trung vị mà nó phải vượt qua, để một ngày chưa hoàn tất giao dịch không thể kéo mức trung vị của chính nó xuống thấp hơn. Dữ liệu được cập nhật dần dần, và một ngày có volume thấp hơn ba phần tư một phiên bình thường sẽ không xuất hiện trên bảng cho đến khi dữ liệu đầy đủ. Mỗi bảng hiển thị phiên mà nó đạt được, để cả bốn bảng có thể được so sánh với nhau.
  5. Loại trừ. Các quỹ đòn bẩy (leveraged) và quỹ nghịch đảo (inverse) bị loại bỏ theo tên: chuỗi dữ liệu của một sản phẩm 3x sẽ biến động theo hệ số nhân của nó và sẽ làm lấp đầy danh sách hàng tuần. Một ticker symbol bị trùng lặp cũng bị loại bỏ, vì lịch sử từ nhà cung cấp gộp hai công ty dưới cùng một mã.
  6. Không có open interest. Kho dữ liệu không có trường open-interest, vì vậy không có gì trên trang này so sánh volume với các vị thế đang mở. Trong khi bảng xếp hạng của đối thủ nói rằng volume vượt quá open interest, thì bảng của chúng tôi nói rằng volume vượt quá mức trung bình 20 phiên của chính nó.
  7. Ngày đáo hạn. Việc đáo hạn hàng tháng làm tăng volume options trên toàn thị trường. Bảng phiên sẽ dán nhãn điều kiện này, và một bảng được xây dựng dựa trên một phiên đáo hạn nên được so sánh với các phiên đáo hạn khác.

Nghiên cứu hệ quả (follow-through study) sử dụng một bảng thứ hai, tệp daily options greeks, chứa symbol tài sản cơ sở sạch và giá đóng cửa của tài sản cơ sở đó. Nó loại trừ các hợp đồng đáo hạn trong ngày và index options, đồng thời chốt dữ liệu muộn hơn vài phiên so với dữ liệu theo phút, do đó phạm vi dữ liệu của nó hẹp hơn bảng xếp hạng chính. Các mã có sự kiện chia tách cổ phiếu (stock split) trong cửa sổ nghiên cứu sẽ bị loại bỏ, vì việc chia tách tạo ra biến động giả.

FAQ

Hoạt động options bất thường là gì?

Là tình trạng một mã chứng khoán có khối lượng giao dịch hợp đồng options trong một phiên cao hơn nhiều so với mức trung bình gần đây của chính nó. Trên trang này, ngưỡng xác định dựa trên tính toán toán học thay vì đánh giá chủ quan: lấy khối lượng hợp đồng của phiên đó chia cho mức trung bình của cùng mã đó trong 20 phiên trước đó, với điều kiện tối thiểu là 25,000 hợp đồng trong phiên và 5,000 hợp đồng ở mức cơ sở.

Hoạt động options bất thường có dự báo được biến động giá cổ phiếu không?

Có nhưng mức độ yếu và không xác định được hướng đi. Trong 200 ngày dữ liệu gần nhất của chúng tôi, những phiên có khối lượng gấp năm lần mức cơ sở options của mã đó thường theo sau bởi mức biến động tuyệt đối trung vị là 2.61%, so với mức 1.96% của cùng mã đó vào một ngày bình thường. Mức thay đổi có dấu trung vị trong phiên tiếp theo là -0.35%, do đó khối lượng chỉ cho biết về biên độ biến động của cổ phiếu chứ rất ít khi cho biết hướng biến động.

Dữ liệu khối lượng options được cập nhật khi nào?

Khối lượng hợp đồng được ghi nhận trực tiếp trên consolidated options tape trong khi phiên giao dịch đang diễn ra. Dữ liệu lưu trữ đằng sau trang này có độ trễ, vì vậy bảng biểu sẽ báo cáo phiên hoàn chỉnh mới nhất thay vì phiên đang diễn ra và có ghi rõ ngày tháng. Không có dữ liệu nào ở đây là dữ liệu thời gian thực (real-time).

Tại sao bộ quét hoạt động options bất thường này không sử dụng open interest?

Open interest được các trung tâm bù trừ (clearinghouse) công bố sau khi kết thúc phiên, và dữ liệu chúng tôi nắm giữ không có trường thông tin open interest. Việc so sánh khối lượng của một phiên với lịch sử khối lượng của chính mã đó có thể đo lường trực tiếp từ tape, và nó trả lời một câu hỏi tương tự: liệu chuỗi hợp đồng này có đang hoạt động bận rộn hơn bình thường hay không.


Mọi con số ở trên đều là kết quả từ các truy vấn đã được lưu trữ và phân phiên. Hãy mở SQL dưới bất kỳ bảng nào để kiểm tra phép đo, hoặc chạy cùng một bộ lọc đó trên bất kỳ khoảng thời gian nào bạn muốn trên terminal Strasmore.

#options#unusual options activity#options volume#market structure