Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor · · Updated 2026-08-08

Penjelasan Kode Kondisi Transaksi Saham

Tiga platform dapat menampilkan titik tertinggi harian berbeda untuk saham yang sama. Kode kondisi transaksi menentukan print yang memperbarui high, low, close, dan volume.

Kode kondisi transaksi adalah alasan tiga platform dapat menampilkan tiga titik tertinggi harian yang berbeda untuk saham yang sama, tanpa ada satu pun yang keliru. Setiap print pada consolidated tape membawa tag ini. Tag tersebut menentukan apakah print dapat memperbarui harga terakhir, titik tertinggi dan terendah hari itu, harga pembukaan resmi, harga penutupan resmi, serta total volume consolidated. Sebuah transaksi dapat merupakan eksekusi yang benar-benar terjadi pada harga yang benar-benar berlaku, tetapi tetap tidak diperhitungkan dalam hampir semua bidang tersebut.

Apa itu kode kondisi transaksi?

Kode kondisi transaksi, yang juga disebut sale condition, adalah tag yang ditempelkan venue pelapor pada laporan transaksi sebelum laporan tersebut masuk ke tape. Harga dan jumlah menunjukkan apa yang diperdagangkan. Kondisi menunjukkan jenis laporannya: apakah laporan tiba tepat waktu, apakah harganya dihitung dari eksekusi lain alih-alih disepakati pada saat itu, apakah transaksi terjadi di luar jam perdagangan reguler, dan apakah jumlahnya kurang dari 100 saham dalam satu round lot.

Setiap kode memiliki serangkaian eligibility flags. Bagian inilah yang hampir tidak pernah terlihat oleh pengguna. Setiap kode ditandai eligible atau ineligible untuk harga terakhir, titik tertinggi dan terendah, pembukaan, penutupan, serta consolidated volume. Flag tersebut bergerak secara independen. Banyak print yang tidak dapat menyentuh titik tertinggi atau terendah tetap dihitung dalam volume. Karena itu, jumlah saham yang dilaporkan dan titik ekstrem harga saham dibentuk dari kelompok transaksi yang saling tumpang tindih, tetapi tidak sama. Ada kelompok flag kedua yang berjalan bersamaan: satu mengatur consolidated tape, sedangkan yang lain mengatur market center individual. Official close suatu bursa hanya dihitung dari print bursa tersebut.

Kode kondisi terbagi dalam beberapa kelompok. Hanya satu kelompok yang menentukan bidang mana yang dapat diperbarui oleh suatu transaksi.

QueryKeluarga kode kondisi yang ditetapkan untuk saham AS
SQL tepat di balik setiap angka
SELECT
    replaceAll(type, '_', ' ') AS condition_family,
    countDistinct(id)          AS codes
FROM global_markets.stocks_condition_codes
WHERE asset_class = 'stocks'
GROUP BY condition_family
ORDER BY codes DESC
Run this yourself

Kamus saham memuat 8 kelompok. Yang terbesar adalah kelompok sale condition, dengan 40 kode berbeda. Quote conditions menjelaskan bid dan offer, bukan transaksi. Kelompok indikator menandai keadaan seperti berlakunya short sale restriction. Sale condition adalah kelompok yang membawa eligibility flags. Semua angka di bawah ini berasal dari kelompok tersebut.

Apa yang sebenarnya masuk ke tape

Panel di bawah menggunakan satu sesi yang ditetapkan dari Juni 2026. Panel tersebut mencakup setiap print AAPL dari pembukaan premarket pukul 4:00 a.m. hingga berakhirnya perdagangan post-market pukul 8:00 p.m., yang dikelompokkan berdasarkan sale condition pada setiap print. Periode ini ditetapkan dalam SQL. Karena itu, angka-angka tersebut hanya menggambarkan hari itu. Sebuah print dapat membawa beberapa kode sekaligus, dan banyak print tidak membawa kode sama sekali. Itulah sebabnya kolom-kolomnya tidak berjumlah 100.

QuerySatu sesi AAPL, setiap transaksi dikelompokkan berdasarkan kondisi penjualannya
SQL tepat di balik setiap angka
WITH
    (SELECT count()
       FROM global_markets.stocks_trades
      WHERE ticker = 'AAPL'
        AND sip_timestamp >= toDateTime('2026-06-17 08:00:00', 'UTC')
        AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')) AS day_prints,
    (SELECT sum(size)
       FROM global_markets.stocks_trades
      WHERE ticker = 'AAPL'
        AND sip_timestamp >= toDateTime('2026-06-17 08:00:00', 'UTC')
        AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')) AS day_shares
SELECT
    multiIf(t.code = -1,     'Regular way (no code)',
            c.code_name = '', concat('Unmapped code ', toString(t.code)),
            c.code_name)                        AS condition_name,
    round(100 * count() / day_prints, 2)        AS pct_of_prints,
    round(100 * sum(t.size) / day_shares, 2)    AS pct_of_shares
FROM
(
    SELECT
        size,
        arrayJoin(if(empty(conditions),
                     [toInt32(-1)],
                     arrayMap(x -> toInt32(x), conditions))) AS code
    FROM global_markets.stocks_trades
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= toDateTime('2026-06-17 08:00:00', 'UTC')
      AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')
) AS t
LEFT JOIN
(
    SELECT toInt32(id) AS code_id, any(name) AS code_name
    FROM global_markets.stocks_condition_codes
    WHERE asset_class = 'stocks'
      AND type = 'sale_condition'
    GROUP BY code_id
) AS c ON c.code_id = t.code
GROUP BY condition_name
ORDER BY pct_of_prints DESC
LIMIT 12
Run this yourself

Tag yang paling umum pada hari itu adalah Odd Lot Trade, yang muncul pada 65.83% print dalam sesi tersebut dan mencakup 6.37% saham. Bandingkan kedua kolom dari baris ke baris. Jika porsi print jauh lebih besar daripada porsi volume, kode tersebut menandai eksekusi berukuran kecil. Jika yang terjadi sebaliknya, kode tersebut menandai sejumlah kecil transaksi berukuran sangat besar. Menghitung print dan menghitung saham menjawab pertanyaan yang berbeda. Kode kondisi yang membedakan keduanya.

Mengapa dua platform menampilkan titik tertinggi harian yang berbeda?

Empat jenis print berikut masing-masing dikecualikan dari bidang yang berbeda.

  • Dilaporkan terlambat dan tidak berurutan. Transaksi yang disepakati pada pukul 10:14 dan dilaporkan pada pukul 10:31 masuk ke tape dengan tag out of sequence atau priced off a prior reference. Transaksi tersebut dihitung dalam volume. Namun, transaksi itu tidak dapat menetapkan harga terakhir dan tidak dapat menaikkan titik tertinggi hari itu, bahkan ketika harganya berada di atas seluruh transaksi lain dalam sesi tersebut. Block trades yang dinegosiasikan dan print yang disalurkan melalui trade reporting facility dari venue dark pool trading sering masuk dalam kategori ini.
  • Dihargai secara derivatif. Transaksi dengan average price atau pengisian VWAP memiliki harga yang dihitung dari banyak eksekusi lain, bukan harga yang disepakati pada saat itu. Transaksi tersebut tidak dimasukkan dalam harga terakhir maupun titik ekstrem, karena harga yang ditampilkan tidak pernah ada sebagai kuotasi aktif.
  • Odd lot. Jumlahnya kurang dari 100 saham. Odd lot tidak eligible untuk harga terakhir serta titik tertinggi dan terendah, tetapi sepenuhnya dihitung dalam consolidated volume. Odd lot baru mulai dilaporkan ke consolidated tape pada akhir 2013. Setiap perbandingan volume yang mencakup periode sebelum batas tersebut membandingkan dua definisi yang berbeda, sebagaimana dibahas secara terperinci dalam panduan kami mengenai average daily volume.
  • Extended hours dan form T. Print premarket dan post-close diberi tag serta tidak dimasukkan dalam harga pembukaan, titik tertinggi, titik terendah, dan harga penutupan sesi reguler. Namun, print tersebut tetap dihitung dalam consolidated volume. Platform yang menampilkannya akan menunjukkan rentang harian yang berbeda dari platform yang tidak menampilkannya. Inilah mekanisme yang membuat after-hours dan premarket trading muncul pada satu chart tetapi tidak pada chart lain.

Berikut porsi setiap kelompok dalam satu sesi untuk lima saham yang dikenal luas, pada hari yang sama.

QueryPorsi transaksi dalam satu sesi yang memiliki kondisi harga tidak memenuhi syarat
SQL tepat di balik setiap angka
WITH
    (SELECT groupArray(toInt32(id))
       FROM global_markets.stocks_condition_codes
      WHERE asset_class = 'stocks'
        AND type = 'sale_condition'
        AND name ILIKE '%odd lot%')                       AS odd_lot_codes,
    (SELECT groupArray(toInt32(id))
       FROM global_markets.stocks_condition_codes
      WHERE asset_class = 'stocks'
        AND type = 'sale_condition'
        AND multiSearchAnyCaseInsensitive(name,
              ['form t', 'extended trading hours']))      AS extended_codes,
    (SELECT groupArray(toInt32(id))
       FROM global_markets.stocks_condition_codes
      WHERE asset_class = 'stocks'
        AND type = 'sale_condition'
        AND multiSearchAnyCaseInsensitive(name,
              ['out of sequence', 'prior reference', 'derivatively priced',
               'average price', 'price variation', 'seller'])
        AND NOT multiSearchAnyCaseInsensitive(name,
              ['form t', 'extended trading hours']))      AS late_or_derived_codes
SELECT
    ticker,
    round(100 * countIf(hasAny(conditions, odd_lot_codes))         / count(), 2) AS odd_lot_pct,
    round(100 * countIf(hasAny(conditions, late_or_derived_codes)) / count(), 2) AS late_or_derived_pct,
    round(100 * countIf(hasAny(conditions, extended_codes))        / count(), 2) AS extended_hours_pct
FROM global_markets.stocks_trades
WHERE ticker IN ('AAPL', 'KO', 'MSFT', 'NVDA', 'SPY')
  AND sip_timestamp >= toDateTime('2026-06-17 08:00:00', 'UTC')
  AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')
GROUP BY ticker
ORDER BY odd_lot_pct DESC
Run this yourself

Print odd lot mencakup 46.8% hingga 85.14% dari seluruh print pada lima saham tersebut. Kolom ini berkorelasi erat dengan harga saham. Dengan nilai order yang sama, saham berharga lebih tinggi menghasilkan jumlah saham yang lebih sedikit. NVDA berada di posisi teratas, dengan 2.4% print-nya ditandai sebagai terlambat atau dihargai secara derivatif, serta 3.53% ditandai sebagai extended hours. Setiap print dalam ketiga kelompok tersebut merupakan transaksi nyata pada harga nyata. Namun, semuanya dilarang menetapkan titik tertinggi dan titik terendah.

Panel berikut menggunakan sesi AAPL yang sama. Sesi reguler pukul 9:30 a.m. hingga 4:00 p.m. dibagi menjadi interval 15 menit, lalu dua titik tertinggi digambarkan untuk setiap interval. Garis pertama menggunakan harga tertinggi dari semua print. Garis kedua menggunakan harga tertinggi di antara print yang kondisinya membuat print tersebut eligible untuk menetapkan titik tertinggi.

QueryDua versi tertinggi sesi AAPL yang sama, dengan interval lima belas menit
SQL tepat di balik setiap angka
WITH
    (SELECT groupArray(toInt32(id))
       FROM global_markets.stocks_condition_codes
      WHERE asset_class = 'stocks'
        AND type = 'sale_condition'
        AND multiSearchAnyCaseInsensitive(name,
              ['odd lot', 'form t', 'extended trading hours', 'out of sequence',
               'prior reference', 'derivatively priced', 'average price',
               'price variation', 'seller'])) AS not_high_low_codes
SELECT
    formatDateTime(toStartOfFifteenMinutes(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
    round(toFloat64(max(price)), 2)                                              AS tape_high,
    round(toFloat64(maxIf(price, NOT hasAny(conditions, not_high_low_codes))), 2) AS eligible_high
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL'
  AND sip_timestamp >= toDateTime('2026-06-17 08:00:00', 'UTC')
  AND sip_timestamp <  toDateTime('2026-06-18 00:00:00', 'UTC')
  AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
       + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) >= 570
  AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60
       + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) < 960
GROUP BY et_time
HAVING countIf(NOT hasAny(conditions, not_high_low_codes)) > 0
ORDER BY et_time
Run this yourself

Sesi dibuka pada 09:30 dengan tape high sebesar $302.07, sedangkan eligible high sebesar $302.07, lalu mencakup 26 interval hingga penutupan. Garis eligible tidak mungkin berada di atas garis tape, karena print yang eligible merupakan subset dari seluruh print. Jika kedua garis bertumpuk, setiap print dalam interval 15 menit tersebut diperbolehkan menetapkan titik tertinggi. Jika garis atas menjauh, setidaknya ada satu print dalam interval tersebut yang diperdagangkan di atas harga eligible tertinggi. Chart yang menerapkan eligibility rules tidak akan pernah menampilkannya.

Selisih tersebut menjelaskan perbedaan secara langsung. Sumber yang mengambil harga maksimum dari setiap print akan melaporkan satu titik tertinggi. Sumber yang menerapkan eligibility flags akan melaporkan titik tertinggi yang lain. Sumber yang juga menghapus sesi premarket dan post-close akan melaporkan titik tertinggi ketiga. Ketiganya membaca tape yang sama.

Seberapa andal lapisan eligibility?

Tidak terlalu andal. Flag tersebut merupakan reference data, dan reference data dapat dikoreksi. Salah satu penyedia market data komersial pernah memperbaiki condition dictionary miliknya dan mengklasifikasikan ulang eligibility satu sale condition untuk menetapkan official open dan official close. Tidak ada transaksi yang berubah. Tape untuk setiap hari yang terdampak identik sebelum dan sesudah perbaikan. Yang berubah adalah satu flag dalam lookup table. Perubahan itu kemudian mengubah official open dan official close yang ditampilkan oleh setiap chart dan backtest yang menggunakan dictionary tersebut.

Anggap OHLC dari satu vendor sebagai salah satu pembacaan atas tape, bukan sebagai fakta tunggal mengenai tape tersebut. Jika dua sumber berbeda, tanyakan eligibility rules mana yang diterapkan oleh masing-masing sumber. Delayed dan consolidated quote feeds menambahkan versi kedua dari masalah yang sama, kali ini pada aspek waktu, bukan eligibility.

Di mana daftar kode kondisi transaksi yang otoritatif berada

Tape beroperasi di bawah dua national market system plans: CTA Plan untuk sekuritas yang terdaftar di NYSE dan UTP Plan untuk sekuritas yang terdaftar di Nasdaq. Masing-masing menerbitkan spesifikasi sale condition untuk tape yang dikelolanya. Spesifikasi tersebut merupakan rujukan otoritatif. Semua data turunan, termasuk id number yang digunakan dalam panel di atas, merupakan pemetaan vendor ke sistem penomorannya sendiri. Karena itu, code id dari satu penyedia tidak selalu memiliki arti yang sama pada penyedia lain. Pelajari kategorinya, bukan angkanya. Kategori tersebut telah stabil selama bertahun-tahun. Angka hanyalah lookup table, dan lookup table dapat diubah.

Catatan data

Kelompok kondisi dalam panel di atas dibentuk dari dictionary itu sendiri, bukan dari id number yang ditulis secara hardcode. Setiap kelompok menggunakan pencocokan nama dalam sale condition family, seperti odd lot, form T dan extended trading hours, out of sequence, prior reference price, derivatively priced, average price, price variation, dan seller. Buka SQL di bawah panel mana pun untuk membaca pola yang digunakan secara tepat. Kode tidak saling eksklusif. Satu print dapat membawa beberapa kode, sehingga persentase kelompok saling tumpang tindih dan tidak berjumlah sama dengan total sesi. Kedua panel AAPL dan panel lima saham mencakup satu sesi tetap pada Juni 2026 yang ditetapkan dalam SQL. Karena itu, tidak ada angka di halaman ini yang berubah ketika sesi baru tiba.

FAQ

Apa itu kode kondisi transaksi?

Kode tersebut adalah tag yang ditempelkan pada laporan transaksi di consolidated tape untuk menjelaskan jenis laporan, misalnya terlambat dilaporkan, dihargai secara derivatif, odd lot, atau extended hours. Setiap kode memiliki flag yang menandai apakah transaksi tersebut dapat memperbarui harga terakhir, titik tertinggi dan terendah, harga pembukaan, harga penutupan, serta consolidated volume.

Mengapa dua situs web menampilkan titik tertinggi harian yang berbeda untuk saham yang sama?

Masing-masing menerapkan eligibility rules yang berbeda pada print yang sama. Satu situs mungkin mengambil harga tertinggi dari setiap transaksi yang dilaporkan. Situs lain mungkin menghapus print yang condition code-nya melarang print tersebut menetapkan titik tertinggi. Situs ketiga mungkin juga menghapus sesi premarket dan post-close. Semuanya membaca tape yang sama.

Apakah transaksi odd lot dihitung dalam volume?

Ya. Odd lot, yaitu transaksi kurang dari 100 saham, dihitung dalam consolidated volume, tetapi tidak eligible untuk menetapkan harga terakhir atau titik tertinggi dan terendah hari itu. Odd lot tidak dilaporkan ke consolidated tape sama sekali sebelum akhir 2013. Karena itu, perbandingan volume jangka panjang melewati perubahan definisi pada titik tersebut.

Apakah transaksi after-hours dihitung dalam titik tertinggi dan terendah harian?

Tidak dalam titik tertinggi dan terendah sesi reguler. Print premarket dan post-close membawa kondisi extended hours atau form T yang membuatnya tidak dimasukkan dalam harga pembukaan, titik tertinggi, titik terendah, dan harga penutupan sesi reguler. Namun, print tersebut tetap dihitung dalam consolidated volume hari itu.

Di mana daftar resmi sale condition codes tersedia?

CTA Plan dan UTP Plan menerbitkan spesifikasi sale condition untuk tape yang dikelolanya. Dokumen tersebut merupakan rujukan otoritatif. Vendor feed menomori ulang kondisi tersebut ke dalam sistem id mereka sendiri. Karena itu, numeric code dari satu penyedia tidak selalu sama dengan angka yang memiliki arti sama pada penyedia lain.


Setiap panel di sini dilengkapi SQL yang menghasilkan data tersebut. Buka salah satunya, ganti ticker atau tanggal, lalu jalankan breakdown kondisi yang sama untuk sesi mana pun di terminal Strasmore.

#market data#trade conditions#consolidated tape#volume#ohlc