Strasmore Research
Siasatan Matt ConnorOleh Matt Connor

Cara Pencegahan Padanan Kendiri dan Wash Trade Berfungsi

Pencegahan padanan kendiri menghalang pesanan firma sendiri daripada berdagang sesama sendiri. Ketahui cara sistem ini berfungsi serta perbezaannya dengan undang-undang wash trade.

Pencegahan padanan kendiri (self-match prevention) ialah ciri enjin pemadanan yang menghalang dua pesanan daripada firma yang sama daripada berdagang antara satu sama lain. Pesanan membawa pengecam semasa dimasukkan, dan apabila dua pesanan yang berkongsi pengecam tersebut akan bersilang, enjin akan membatalkan salah satu daripadanya, atau kedua-duanya, sebelum sebarang dagangan dilaksanakan (prints). Pencegahan padanan kendiri ialah sistem infrastruktur tempat dagangan yang anda aktifkan, manakala larangan terhadap wash trade ialah undang-undang, dan kedua-duanya tidak merangkumi skop yang sama.

Sebaik sahaja strategi kedua memetik harga instrumen yang sudah dipetik oleh strategi pertama anda, peraturan ini terpakai kepada anda. Bot grid dua tangga pada satu simbol akan menepati peraturan ini dengan syarat yang sama seperti meja dagangan bank.

Cara pencegahan padanan kendiri berfungsi di enjin pemadanan

Setiap pesanan yang diterima oleh tempat dagangan membawa medan yang dibaca oleh enjin sebelum pemadanan: sisi, harga, saiz, dan tempoh sah (time in force). Pencegahan padanan kendiri menambah dua lagi medan. Pertama ialah pengecam, iaitu nombor atau rentetan yang menyatakan firma, akaun atau kumpulan strategi mana yang memiliki pesanan tersebut. Kedua ialah arahan yang memberitahu enjin perkara yang perlu dilakukan apabila dua pesanan aktif yang membawa pengecam tersebut akan berdagang antara satu sama lain.

Semakan dijalankan pada saat pesanan agresif mencapai harga pesanan sedia ada (resting order) yang sepatutnya dipadankan. Empat hasil lazim digunakan:

  • Batalkan pesanan sedia ada. Pesanan masuk diteruskan ke dalam buku pesanan dan boleh dipadankan dengan apa sahaja yang berada di belakangnya pada harga tersebut.
  • Batalkan pesanan masuk. Pesanan sedia ada mengekalkan kedudukan barisannya dan pesanan agresif hilang.
  • Batalkan kedua-dua pesanan, tetapan yang paling ketat.
  • Kurangkan dan batalkan. Pesanan yang lebih besar dikurangkan mengikut saiz pesanan yang lebih kecil, pesanan yang lebih kecil dibatalkan, dan baki pesanan yang lebih besar kekal aktif.

Tiada dagangan berlaku dalam keempat-empat situasi tersebut. Tiada apa-apa yang dicetak pada pita (tape), tiada apa-apa yang masuk ke dalam log pelaksanaan, dan pembatalan tanpa diminta akan diterima pada satu atau kedua-dua pihak.

Kedudukan barisan (queue position) ialah kos tersembunyi. Pesanan sedia ada yang dibatalkan di bawah arahan batalkan-terlama (cancel-oldest) kehilangan segala yang diperoleh dengan menunggu. Di bawah keutamaan harga-masa, kerugian itu adalah mutlak: memasukkan semula pesanan akan meletakkan pesanan tersebut di belakang semua orang yang menyertai barisan semasa ia berada di sana. Panduan kami mengenai menganggar kedudukan barisan merangkumi nilai kedudukan dalam barisan tersebut.

Satu instrumen, banyak buku pesanan

Semakan ini adalah mengikut tempat dagangan. Enjin hanya membandingkan pesanan yang dipegangnya sendiri. Dua pesanan anda yang berada dalam dua buku pesanan berbeza tidak dapat dilihat antara satu sama lain, dan tiada mekanisme ekuiti AS yang menjangkaui kedua-duanya. Satu saham AS dipetik dalam banyak buku pesanan serentak. Panel di bawah mengira tempat dagangan sebut harga dan cetakan yang berbeza bagi enam nama terkenal sepanjang satu tetingkap lima belas minit pada pagi 10 Jun 2026.

PertanyaanVenue yang memetik dan mencetak saham yang sama dalam satu tetingkap 15 minit
SQL tepat di sebalik setiap nombor
SELECT
    q.ticker          AS ticker,
    q.quoting_venues  AS quoting_venues,
    t.printing_venues AS printing_venues
FROM
(
    SELECT
        ticker,
        countDistinct(bid_exchange) AS quoting_venues
    FROM global_markets.cache_stocks_quotes
    WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO', 'JNJ')
      AND sip_timestamp >= toDateTime('2026-06-10 14:00:00', 'UTC')
      AND sip_timestamp <  toDateTime('2026-06-10 14:15:00', 'UTC')
      AND bid_price > 0
    GROUP BY ticker
) AS q
INNER JOIN
(
    SELECT
        ticker,
        countDistinct(exchange) AS printing_venues
    FROM global_markets.stocks_trades
    WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO', 'JNJ')
      AND sip_timestamp >= toDateTime('2026-06-10 14:00:00', 'UTC')
      AND sip_timestamp <  toDateTime('2026-06-10 14:15:00', 'UTC')
    GROUP BY ticker
) AS t ON t.ticker = q.ticker
ORDER BY quoting_venues DESC, ticker
Run this yourself

AAPL menarik bida daripada 16 tempat dagangan berasingan dalam suku jam tersebut, dan cetakan berlaku pada 17 daripadanya. Nama paling kurang didagangkan dalam panel tersebut masih menarik 11 tempat dagangan sebut harga. Penghala pesanan pintar (smart order router) yang memecahkan pesanan induk kepada pesanan kecil secara reka bentuk akan meletakkan dua strategi anda dalam buku pesanan yang berbeza pada kebanyakan masa, di mana tiada semakan peringkat enjin dikenakan. Firma menutup jurang tersebut di peringkat hulu, dalam lapisan pengurusan pesanan, sebelum apa-apa keluar dari firma. Pesanan anda sendiri yang berada pada sisi bertentangan pada harga yang sama dalam dua buku pesanan juga menghasilkan pasaran terkunci atau bersilang, yang membawa set peraturannya sendiri.

Berapa banyak padanan yang dibuat oleh satu buku pesanan dalam satu sesi

Semakan padanan kendiri berada dalam laluan setiap padanan yang dibuat oleh enjin, dan pada nama yang cair, laluan itu kekal sibuk sepanjang hari. Panel di bawah membahagikan satu sesi penuh satu saham kepada segmen lima belas minit dan mengira cetakan dalam setiap segmen, dengan mengekalkan segmen yang mempunyai sekurang-kurangnya 200 cetakan.

PertanyaanCetak setiap baldi 15 minit, satu sesi penuh
SQL tepat di sebalik setiap nombor
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 15 MINUTE), '%H:%i') AS et_time,
    count() AS trade_count
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL'
  AND sip_timestamp >= toDateTime('2026-06-10 08:00:00', 'UTC')
  AND sip_timestamp <  toDateTime('2026-06-11 04:00:00', 'UTC')
GROUP BY et_time
HAVING count() >= 200
ORDER BY et_time
Run this yourself

Pada 04:00 ET, nama tersebut mencatatkan 9402 dagangan dalam lima belas minit, dan pada 19:45 ET ia mencatatkan 1345, merentasi 64 segmen yang melepasi had minimum 200 cetakan. Setiap cetakan ialah satu pasangan pesanan yang dipertemukan oleh enjin, dan semakan membaca pengecam pada kedua-dua pihak sebelum membenarkannya bertemu. Setiap pesanan yang masuk ke dalam buku pesanan adalah calon untuk bertemu pesanan lain daripada akaun yang sama pada hari tersebut.

Apa yang ditunjukkan oleh pita apabila dagangan kendiri dicetak

Pencegahan padanan kendiri tidak meninggalkan kesan. Pita hanya membawa apa yang dilaksanakan, dan setiap cetakan tiba dengan kod syarat: kod yang dilampirkan oleh tempat dagangan untuk menerangkan cara dagangan berlaku. Panel di bawah memecahkan satu sesi penuh satu saham kepada kod-kod tersebut.

PertanyaanBendera syarat dagangan pada satu sesi penuh
SQL tepat di sebalik setiap nombor
SELECT
    condition_name,
    print_count,
    round(100 * print_count / sum(print_count) OVER (), 2) AS share_pct
FROM
(
    SELECT
        cc.id        AS condition_id,
        any(cc.name) AS condition_name,
        count()      AS print_count
    FROM
    (
        SELECT toInt32(arrayJoin(conditions)) AS condition_id
        FROM global_markets.stocks_trades
        WHERE ticker = 'AAPL'
          AND sip_timestamp >= toDateTime('2026-06-10 08:00:00', 'UTC')
          AND sip_timestamp <  toDateTime('2026-06-11 04:00:00', 'UTC')
    ) AS f
    INNER JOIN
    (
        SELECT
            toInt32(id)  AS id,
            any(name)    AS name
        FROM global_markets.stocks_condition_codes
        WHERE asset_class = 'stocks'
          AND has(data_types, 'trade')
        GROUP BY id
    ) AS cc ON cc.id = f.condition_id
    GROUP BY condition_id
)
ORDER BY print_count DESC
LIMIT 10
Run this yourself

Odd Lot Trade merangkumi 48.34% daripada cetakan yang mempunyai kod dalam sesi tersebut, dan panel menyenaraikan 10 kod paling lazim pada hari itu. Baca senarai tersebut dan perhatikan apa yang tiada. Tiada kod bermakna dua pesanan datang daripada satu firma. Dagangan kendiri yang dicetak kelihatan seperti dagangan lain pada harga tersebut, jadi pengawasan untuknya dijalankan di luar pita, berdasarkan pengecam peserta yang dipegang oleh tempat dagangan dan nombor akaun yang disertakan pada pesanan.

Di mana pencegahan padanan kendiri berakhir dan undang-undang wash trade bermula

Pencegahan padanan kendiri ialah perkhidmatan tempat dagangan. Anda memilih untuk menggunakannya, anda mengkonfigurasinya, dan enjin akan memadankan dua pesanan anda dengan gembira jika anda tidak menetapkannya. Larangan wash trade tidak bersifat pilihan dan tidak bergantung pada sebarang tetapan.

Seksyen 9(a)(1) Akta Bursa Sekuriti 1934 menjangkaui transaksi sekuriti yang tidak melibatkan perubahan dalam pemilikan benefisial, yang dimasukkan untuk mencipta gambaran mengelirukan tentang dagangan aktif. Akta Bursa Komoditi membawa setara bagi niaga hadapan, dan Peraturan CME 534 menyatakannya semula dalam buku peraturan bursa. Peraturan FINRA 5210 terletak di bawah kedua-duanya bagi broker-peniaga, dan bahan tambahannya menangani dagangan kendiri secara langsung: dagangan antara dua algoritma yang tidak berkaitan di satu firma tidak melanggar peraturan dengan sendirinya, dan firma dijangka mengekalkan polisi yang menyemak dan mengurangkannya.

Dua akibat berlaku bagi sesiapa yang menjalankan lebih daripada satu strategi. Persilangan kendiri boleh melanggar larangan di tempat dagangan di mana anda tidak menetapkan arahan padanan kendiri langsung, kerana peraturan tersebut terikat pada transaksi dan niat di sebaliknya. Persilangan kendiri yang dihentikan oleh pencegahan padanan kendiri tidak melanggar apa-apa: menghentikannya adalah tujuan utama ciri tersebut.

Cara pengendali mengkonfigurasinya: CME, ICE, LME, dan MiFID II

Di CME Globex, pencegahan padanan kendiri dijalankan berdasarkan pengecam yang diserahkan semasa kemasukan pesanan. Firma mendaftarkan pengecam yang akan digunakan, setiap pesanan membawa satu pengecam, dan arahan berpasangan menyatakan sisi mana yang dibatalkan oleh enjin apabila dua pesanan yang membawa pengecam tersebut bertemu. Pesanan yang dihantar tanpa pengecam akan dipadankan seperti biasa, yang merupakan perangkap bagi pengendali baharu: tetapan lalai adalah tidak aktif.

ICE menjalankan Fungsi Pencegahan Dagangan Kendiri, yang dikonfigurasikan terhadap pengecam firma dagangan dan bukannya pesanan demi pesanan, dengan keluarga hasil pembatalan yang sama. London Metal Exchange menawarkan Pencegahan Pelaksanaan Kendiri di LMEselect untuk pengecam dagangan ahli. Di Eropah, MiFID II Artikel 17 meletakkan kewajipan sistem dan kawalan ke atas mana-mana firma pelaburan yang terlibat dalam dagangan algoritma, meliputi ujian, fungsi pematian (kill functionality), dan pencegahan dagangan yang tidak teratur. Artikel 48 meletakkan kewajipan selari ke atas tempat dagangan itu sendiri, dan alat pencegahan di pihak tempat dagangan menjadi peralatan standard bersamanya.

Konfigurasi berada pada peringkat akaun atau firma dan bukannya simbol demi simbol. Saiz permukaan opsyen bagi satu aset asas menunjukkan sebabnya.

PertanyaanKontrak opsyen dengan volum pada satu aset pendasar, Jun 2026
SQL tepat di sebalik setiap nombor
SELECT
    toString(date)                 AS session_date,
    countDistinct(ticker)          AS contracts_traded,
    countDistinct(strike_price)    AS strikes_traded
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND date >= '2026-06-01'
  AND date <= '2026-06-30'
  AND volume > 0
  AND iv_converged = 1
GROUP BY date
ORDER BY date
Run this yourself

Pada 2026-06-01, satu aset asas membawa 1579 kontrak yang boleh didagangkan secara berasingan dengan volum, tersebar merentasi 112 harga strike, dan panel merangkumi 21 sesi dengan bentuk yang serupa. Menetapkan peraturan kontrak demi kontrak adalah tidak terurus pada jumlah tersebut. Pengecam dilampirkan pada akaun sebaliknya, dan dibawa bersama setiap pesanan yang dihantar oleh akaun tersebut.

Mod kegagalan yang tidak akan dijelaskan oleh log pelaksanaan anda

Begini cara ia berlaku dalam praktiknya. Arahan batalkan-terbaharu (cancel-newest) membatalkan pesanan yang baru anda hantar, semasa ketibaan, sebelum ia sempat dipadankan. Dari dalam bot, urutan tersebut dibaca sebagai pesanan baharu diikuti oleh pembatalan yang tidak diminta oleh sesiapa. Tiada pelaksanaan, tiada penolakan, dan tiada rentetan ralat yang menamakan sebab, jadi pengendali yang menemuinya buat kali pertama cenderung mencari pepijat dalam laluan pembatalan mereka sendiri.

Dua tabiat menjadikannya mudah difahami. Log mesej status pesanan tempat dagangan secara verbatim dan bukannya ringkasan yang dinormalkan, kerana sebab pencegahan biasanya disertakan sebagai medan pada mesej tersebut. Beri amaran pada sebarang pembatalan yang tidak dimulakan oleh kod anda sendiri. Amaran itu tergolong bersama pemutus litar dagangan automatik anda, kerana kegagalannya adalah kelas yang sama: tempat dagangan menukar status pesanan anda dan proses anda diteruskan seolah-olah tiada apa yang berlaku.

Soalan Lazim

Apakah pencegahan padanan kendiri?

Semakan enjin pemadanan yang menghalang dua pesanan yang membawa pengecam firma atau akaun yang sama daripada berdagang antara satu sama lain. Apabila ia akan dipadankan, enjin akan membatalkan pesanan sedia ada, pesanan masuk, atau kedua-duanya, mengikut arahan yang dilampirkan pada pesanan tersebut.

Adakah dagangan kendiri sama dengan wash trade?

Tidak. Dagangan kendiri ialah sebarang pelaksanaan antara dua pesanan daripada pemilik benefisial yang sama. Wash trade ialah dagangan kendiri yang dimasukkan tanpa risiko pasaran sebenar dan dengan niat untuk mencipta gambaran aktiviti yang mengelirukan. Dagangan kendiri yang tidak disengajakan antara algoritma yang tidak berkaitan dilayan secara berbeza daripada yang diatur, dan firma masih dijangka memantaunya.

Adakah pencegahan padanan kendiri berfungsi merentasi bursa yang berbeza?

Tidak. Setiap enjin pemadanan hanya menggunakan semakan tersebut pada pesanan dalam buku pesanannya sendiri. Dua pesanan daripada satu firma yang berada di dua tempat dagangan boleh berdagang antara satu sama lain, yang menyerahkan tugas itu kepada semakan pra-dagangan firma itu sendiri di atas tempat dagangan.

Mengapa pesanan saya dibatalkan tanpa pelaksanaan dan tanpa sebab?

Arahan pencegahan padanan kendiri batalkan-terbaharu adalah satu calon: tempat dagangan membatalkan pesanan semasa ketibaan, sebelum ia sempat dipadankan dengan pesanan sedia ada yang membawa pengecam anda. Sebabnya biasanya muncul sebagai medan pada mesej pembatalan tempat dagangan dan bukannya sebagai penolakan.

Tempat dagangan manakah yang memerlukan pengecam pencegahan padanan kendiri?

Keperluan berbeza mengikut tempat dagangan dan produk. CME meminta pengecam semasa kemasukan pesanan, yang didaftarkan terlebih dahulu, manakala ICE dan London Metal Exchange menawarkan konfigurasi mereka sendiri pada peringkat firma dan tempat dagangan Eropah membawa kewajipan sistem dan kawalan di bawah MiFID II. Buku peraturan tempat dagangan bagi produk yang anda dagangkan adalah pihak berkuasa.


Setiap panel di sini membawa SQL yang menghasilkannya, jadi kembangkan mana-mana satu dan bacanya. Untuk mengira tempat dagangan yang memetik nama yang anda dagangkan, atau untuk memecahkan sesi kepada kod syarat, ajukan soalan dalam bahasa Inggeris yang mudah pada terminal Strasmore.