Apakah Kod Syarat Dagangan Saham?
Kod syarat dagangan menentukan bagaimana cetakan data mempengaruhi harga tinggi, rendah, penutup serta volum. Ketahui sebab paparan harga berbeza antara platform dagangan.
Kod syarat dagangan adalah sebab mengapa tiga platform boleh memaparkan tiga harga tinggi harian yang berbeza untuk saham yang sama, tanpa satu pun daripadanya salah. Setiap cetakan (print) pada pita disatukan (consolidated tape) membawa tag ini, dan ia menentukan sama ada sesuatu cetakan boleh mengemas kini harga terakhir, harga tinggi dan rendah harian, harga pembukaan rasmi, harga penutup rasmi, dan jumlah volum disatukan. Sesuatu dagangan boleh menjadi pelaksanaan tulen pada harga tulen namun tetap disekat daripada hampir semua medan tersebut.
Apakah kod syarat dagangan?
Kod syarat dagangan, juga dipanggil syarat jualan, ialah tag yang dilampirkan oleh tempat pelaporan pada laporan dagangan semasa ia dihantar ke pita. Harga dan saiz menyatakan apa yang didagangkan. Syarat menyatakan jenis laporan tersebut: sama ada ia tiba tepat pada masanya, sama ada harganya dikira daripada pelaksanaan lain dan bukannya dipersetujui pada saat itu, sama ada ia berlaku di luar waktu biasa, atau sama ada ia meliputi kurang daripada 100 saham bagi satu round lot.
Dilampirkan pada setiap kod ialah satu set bendera kelayakan, dan itulah bahagian yang hampir tidak dilihat oleh sesiapa pun. Setiap kod ditandakan sebagai layak atau tidak layak untuk harga terakhir, untuk harga tinggi dan rendah, untuk pembukaan, untuk penutup, dan untuk volum disatukan. Bendera tersebut bergerak secara bebas antara satu sama lain. Banyak cetakan yang tidak boleh menyentuh harga tinggi atau rendah masih dikira dalam volum, itulah sebabnya jumlah saham yang dilaporkan bagi sesuatu saham dan harga ekstrem yang dilaporkan dibina daripada set dagangan yang bertindih tetapi berbeza. Set bendera kedua berjalan seiring dengan yang pertama: satu set mengawal pita disatukan, manakala satu lagi mengawal pusat pasaran individu, memandangkan harga penutup rasmi sesuatu bursa hanya dikira daripada cetakan bursa itu sendiri.
Kod syarat datang dalam keluarga, dan hanya satu keluarga yang mengawal apa yang boleh dikemas kini oleh sesuatu dagangan.
SQL tepat di sebalik setiap nombor
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 DESCKamus saham menyimpan 8 keluarga. Yang terbesar ialah keluarga sale condition, pada 40 kod yang berbeza. Syarat sebut harga (quote conditions) menerangkan bidaan dan tawaran dan bukannya dagangan. Keluarga penunjuk menandakan keadaan seperti sekatan jualan singkat (short sale restriction) yang sedang berkuat kuasa. Keluarga syarat jualan adalah keluarga yang membawa bendera kelayakan, dan ia merupakan keluarga yang menjadi sumber bagi setiap angka di bawah.
Apa yang sebenarnya terdapat pada pita
Panel di bawah mengambil satu sesi tetap dari Jun 2026: setiap cetakan AAPL dari pembukaan pra-pasaran jam 4:00 pagi hingga penutupan dagangan pasca-pasaran jam 8:00 malam, dikumpulkan mengikut syarat jualan yang dibawa oleh setiap cetakan. Tetingkap ini ditetapkan dalam SQL, jadi angka-angka ini menerangkan hari tersebut dan bukan hari lain. Sesuatu cetakan boleh membawa beberapa kod serentak dan banyak yang tidak membawa sebarang kod, itulah sebabnya lajur-lajur tersebut tidak berjumlah 100.
SQL tepat di sebalik setiap nombor
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 12Tag yang paling biasa pada hari itu ialah Odd Lot Trade, pada 65.83% daripada cetakan sesi tersebut dan 6.37% daripada sahamnya. Baca kedua-dua lajur tersebut secara berbanding baris demi baris. Di mana bahagian cetakan saham jauh lebih besar daripada bahagian volum, kod tersebut menandakan pelaksanaan kecil. Di mana ia berlaku sebaliknya, kod tersebut menandakan segelintir pelaksanaan yang sangat besar. Mengira cetakan dan mengira saham menjawab soalan yang berbeza, dan kod syaratlah yang memisahkannya.
Mengapa dua platform menunjukkan harga tinggi harian yang berbeza?
Empat jenis cetakan masing-masing dikecualikan daripada subset medan yang berbeza.
- Dilaporkan lewat dan tidak mengikut urutan. Dagangan yang dipersetujui pada 10:14 dan dilaporkan pada 10:31 sampai ke pita dengan tag tidak mengikut urutan, atau diletakkan harga berdasarkan rujukan terdahulu. Ia dikira ke arah volum. Ia tidak boleh menetapkan harga terakhir, dan ia tidak boleh menaikkan harga tinggi harian walaupun harganya berada di atas setiap dagangan lain dalam sesi tersebut. Dagangan blok yang dirundingkan dan cetakan yang disalurkan melalui kemudahan pelaporan dagangan daripada tempat dagangan dark pool sering berakhir di sini.
- Harga terbitan. Dagangan harga purata atau pengisian VWAP membawa harga yang dikira merentasi banyak pelaksanaan lain dan bukannya dipersetujui pada saat itu. Ia dikecualikan daripada harga terakhir dan daripada harga ekstrem, memandangkan harga yang ditunjukkannya tidak pernah wujud sebagai sebut harga langsung.
- Odd lot. Kurang daripada 100 saham. Odd lot tidak layak untuk harga terakhir dan untuk harga tinggi dan rendah, sementara dikira sepenuhnya dalam volum disatukan. Ia tidak dilaporkan ke pita disatukan langsung sehingga lewat 2013. Sebarang perbandingan volum yang menjangkau melepasi sempadan itu membandingkan dua definisi perkataan yang berbeza, yang diliputi secara terperinci dalam panduan kami mengenai purata volum harian.
- Waktu lanjutan dan borang T. Cetakan pra-pasaran dan pasca-penutupan ditag dan dikecualikan daripada pembukaan, harga tinggi, rendah, dan penutup sesi biasa, namun masih dikira dalam volum disatukan. Platform yang mencartakannya menunjukkan julat harian yang berbeza daripada platform yang tidak berbuat demikian, dan itulah mekanisme di sebalik dagangan selepas waktu dan pra-pasaran yang muncul pada satu carta dan tidak pada carta yang lain.
Berikut adalah jumlah sesi yang diwakili oleh setiap baldi merentasi lima nama isi rumah, pada hari tetap yang sama.
SQL tepat di sebalik setiap nombor
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 DESCCetakan odd lot berjulat daripada 46.8% hingga 85.14% daripada semua cetakan merentasi lima nama tersebut. Lajur itu menjejaki harga saham dengan rapat, memandangkan pesanan dolar tetap membeli lebih sedikit saham dalam nama yang berharga lebih tinggi. NVDA mendahuluinya, dengan 2.4% daripada cetakannya ditag sebagai lewat atau harga terbitan dan 3.53% ditag sebagai waktu lanjutan. Setiap cetakan dalam ketiga-tiga baldi adalah dagangan sebenar pada harga sebenar, dan setiap satu daripadanya dilarang daripada menetapkan harga tinggi dan rendah.
Cetakan yang tidak menaikkan harga tinggi
Panel seterusnya mengambil sesi AAPL tetap yang sama, memotong tetingkap sesi biasa 9:30 pagi hingga 4:00 petang kepada baldi lima belas minit, dan melukis dua harga tinggi untuk setiap baldi. Satu garisan mengambil harga tertinggi daripada mana-mana cetakan. Satu lagi mengambil harga tertinggi dalam kalangan cetakan yang syaratnya membolehkan mereka menetapkan harga tinggi.
SQL tepat di sebalik setiap nombor
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_timeSesi dibuka pada 09:30 dengan harga tinggi pita sebanyak $302.07 berbanding harga tinggi layak sebanyak $302.07, dan berjalan selama 26 baldi sehingga penutupan. Garisan layak tidak boleh berada di atas garisan pita, memandangkan cetakan layak adalah subset daripada semua cetakan. Di mana kedua-duanya berada di atas satu sama lain, setiap cetakan dalam suku jam tersebut dibenarkan untuk menetapkan harga tinggi. Di mana garisan atas menjauhi, sekurang-kurangnya satu cetakan dalam tetingkap itu didagangkan melebihi harga layak tertinggi, dan tiada carta yang dibina mengikut peraturan kelayakan akan memaparkannya.
Jurang itu adalah jawapan jujur kepada percanggahan tersebut. Sumber yang mengambil harga maksimum bagi setiap cetakan melaporkan satu harga tinggi. Sumber yang menggunakan bendera kelayakan melaporkan yang lain. Sumber yang turut menggugurkan sesi pra-pasaran dan pasca-penutupan melaporkan yang ketiga. Kesemuanya membaca pita yang sama.
Sejauh mana lapisan kelayakan itu kukuh?
Rapuh. Bendera tersebut adalah data rujukan, dan data rujukan boleh diperbetulkan. Seorang penyedia data pasaran komersial menghantar pembetulan kepada kamus syaratnya sendiri yang mengelaskan semula kelayakan satu syarat jualan untuk menetapkan pembukaan rasmi dan penutup rasmi. Tiada dagangan yang berubah. Pita untuk setiap hari yang terjejas adalah sama sebelum dan selepas pembetulan tersebut. Apa yang berubah ialah satu bendera dalam jadual carian, dan bersamanya, pembukaan dan penutup rasmi yang telah dicetak oleh setiap carta dan ujian semula (backtest) hiliran daripada kamus tersebut.
Anggap OHLC mana-mana vendor sebagai satu bacaan pita dan bukannya fakta mengenainya. Apabila dua sumber tidak bersetuju, tanya peraturan kelayakan yang mana digunakan oleh setiap daripada mereka. Suapan sebut harga tertunda dan disatukan menimbunkan versi kedua masalah yang sama di atasnya, dari segi masa dan bukannya kelayakan.
Di mana senarai kod syarat dagangan yang berwibawa berada
Pita berjalan di bawah dua pelan sistem pasaran kebangsaan, Pelan CTA untuk sekuriti tersenarai NYSE dan Pelan UTP untuk sekuriti tersenarai Nasdaq, dan setiap satunya menerbitkan spesifikasi syarat jualan untuk pita yang ditadbirnya. Spesifikasi tersebut adalah pihak berkuasa. Segala-galanya di hiliran, termasuk nombor id di sebalik panel di atas, adalah pemetaan vendor mengenainya ke dalam penomboran mereka sendiri, dan id kod daripada satu penyedia tidak semestinya bermaksud perkara yang sama di penyedia lain. Pelajari kategori dan bukannya nombor. Kategori tersebut telah stabil selama bertahun-tahun. Nombor adalah jadual carian, dan jadual carian boleh disunting.
Nota data
Baldi syarat dalam panel di atas dibina daripada kamus itu sendiri dan bukannya daripada nombor id berkod keras. Setiap baldi ialah padanan nama di dalam keluarga syarat jualan (odd lot, borang T dan waktu dagangan lanjutan, tidak mengikut urutan, harga rujukan terdahulu, harga terbitan, harga purata, variasi harga, penjual). Buka SQL di bawah mana-mana panel untuk membaca corak yang tepat. Kod tidak saling eksklusif dan satu cetakan boleh membawa beberapa kod, jadi peratusan baldi bertindih dan tidak berjumlah kepada sesi tersebut. Kedua-dua panel AAPL dan panel lima nama meliputi satu sesi tetap pada Jun 2026, yang ditetapkan dalam SQL, jadi tiada apa-apa pada halaman ini yang bergerak apabila sesi baharu tiba.
Soalan Lazim
Apakah kod syarat dagangan?
Ia adalah tag yang dilampirkan pada laporan dagangan pada pita disatukan yang menerangkan jenis laporan tersebut, contohnya dilaporkan lewat, harga terbitan, odd lot atau waktu lanjutan. Setiap kod membawa bendera yang menandakan sama ada dagangan tersebut boleh mengemas kini harga terakhir, harga tinggi dan rendah, pembukaan, penutup, dan volum disatukan.
Mengapa dua laman web menunjukkan harga tinggi harian yang berbeza untuk saham yang sama?
Setiap satunya menggunakan set peraturan kelayakan yang berbeza pada cetakan yang sama. Satu mungkin mengambil harga tertinggi daripada mana-mana dagangan yang dilaporkan, satu lagi mungkin mengecualikan cetakan yang kod syaratnya menghalang mereka daripada menetapkan harga tinggi, dan yang ketiga mungkin turut menggugurkan sesi pra-pasaran dan pasca-penutupan. Kesemuanya membaca pita yang sama.
Adakah dagangan odd lot dikira dalam volum?
Ya. Odd lot, yang bermaksud kurang daripada 100 saham, dikira dalam volum disatukan sementara tidak layak untuk menetapkan harga terakhir atau harga tinggi dan rendah harian. Odd lot tidak dilaporkan ke pita disatukan langsung sebelum lewat 2013, jadi perbandingan volum jangka panjang merentasi perubahan definisi pada titik tersebut.
Adakah dagangan selepas waktu dikira dalam harga tinggi dan rendah harian?
Tidak dalam harga tinggi dan rendah sesi biasa. Cetakan pra-pasaran dan pasca-penutupan membawa syarat waktu lanjutan atau borang T yang mengecualikannya daripada pembukaan, harga tinggi, rendah, dan penutup sesi biasa, sementara ia masih dikira dalam volum disatukan harian.
Di manakah senarai rasmi kod syarat jualan?
Pelan CTA dan Pelan UTP menerbitkan spesifikasi syarat jualan untuk pita yang mereka tadbir, dan dokumen tersebut adalah pihak berkuasa. Suapan vendor menomborkan semula syarat tersebut ke dalam ruang id mereka sendiri, jadi kod berangka daripada satu penyedia tidak semestinya sepadan dengan nombor yang sama di penyedia lain.
Setiap panel di sini disertakan dengan SQL yang menghasilkannya. Buka satu, tukar ticker atau tarikh, dan jalankan pecahan syarat yang sama untuk mana-mana sesi pada terminal Strasmore.