Self-match prevention ve wash trade farkları
Self-match prevention mekanizmasının eşleştirme motorunda nasıl çalıştığı ve hayali işlem yasaklarıyla olan hukuki ayrımı hakkında detaylı teknik bilgilendirme metni.
Self-match prevention (kendi kendine eşleşmeyi önleme), aynı firmaya ait iki emrin birbiriyle işlem görmesini engelleyen bir eşleştirme motoru özelliğidir. Emirler giriş sırasında bir tanımlayıcı taşır; bu tanımlayıcıyı paylaşan iki emir eşleşecek duruma geldiğinde, motor herhangi bir işlem gerçekleşmeden önce emirlerden birini veya her ikisini iptal eder. Self-match prevention, açıp kapattığınız bir borsa altyapısı özelliğidir; wash trade (hayali işlem) yasağı ise bir kanundur ve bu ikisi aynı kapsamda değildir.
İkinci bir stratejiniz, ilk stratejinizin halihazırda kotasyon verdiği bir enstrüman için fiyat verdiğinde, bu kural sizin için devreye girer. Tek bir sembol üzerinde çalışan iki kademeli grid botu, bu kurala bir banka işlem masasıyla aynı şartlarda tabi olur.
Eşleştirme motorunda self-match prevention nasıl çalışır?
Bir borsanın aldığı her emir, motorun eşleştirme öncesinde okuduğu taraf, fiyat, miktar ve geçerlilik süresi gibi alanlar içerir. Self-match prevention buna iki alan daha ekler. İlki, emrin hangi firmaya, hesaba veya strateji grubuna ait olduğunu belirten bir sayı veya dizin olan tanımlayıcıdır. İkincisi ise, bu tanımlayıcıyı taşıyan iki aktif emir birbiriyle işlem görme aşamasına geldiğinde motorun ne yapması gerektiğini belirten bir talimattır.
Kontrol, agresif (piyasa yapıcı olmayan) bir emir, eşleşeceği bekleyen bir emrin fiyatına ulaştığı anda gerçekleşir. Yaygın olarak kullanılan dört sonuç vardır:
- Bekleyen emri iptal et. Gelen emir tahtaya girer ve o fiyat seviyesinde arkasında bekleyen diğer emirlerle eşleşebilir.
- Gelen emri iptal et. Bekleyen emir sıra konumunu korur ve agresif emir kaybolur.
- Her iki emri de iptal et (en katı ayar).
- Miktarı azalt ve iptal et. Büyük olan emir, küçük olanın miktarı kadar azaltılır, küçük emir iptal edilir ve kalan miktar aktif kalır.
Bu dört durumun hiçbirinde işlem gerçekleşmez. Bant kaydına (tape) hiçbir şey yansımaz, gerçekleşme günlüğüne (fill log) hiçbir kayıt düşmez; bunun yerine bir veya iki bacağa gönderilen, talep edilmemiş bir iptal mesajı ulaşır.
Sıra konumu (queue position) göz ardı edilen maliyettir. "En eskiyi iptal et" talimatı altında iptal edilen bekleyen bir emir, bekleyerek kazandığı tüm avantajı kaybeder. Fiyat-zaman önceliği altında bu kayıp tamdır: yeniden giriş yapmak, emri o sırada bekleyen herkesin arkasına atar. Sıra konumunu tahmin etme rehberimiz, sıradaki yerin değerini nasıl hesaplayacağınızı açıklar.
Tek enstrüman, birçok tahta
Kontrol borsa bazlıdır. Bir motor yalnızca kendi tuttuğu emirleri karşılaştırır. İki farklı tahtada bekleyen emirleriniz birbirine görünmez ve ABD hisse senedi piyasasında bunları birbirine bağlayan bir mekanizma yoktur. Tek bir ABD hissesi aynı anda birçok tahtada kotasyon verir. Aşağıdaki panel, 10 Haziran 2026 sabahı on beş dakikalık bir pencerede altı popüler hisse için farklı kotasyon ve işlem gören borsaları saymaktadır.
Her verinin arkasındaki tam SQL
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, tickerAAPL, o çeyrek saat içinde 16 farklı borsadan teklif almış ve işlemler bunların 17 tanesinde gerçekleşmiştir. Paneldeki en düşük hacimli hisse bile 11 kotasyon borsasına ulaşmıştır. Alt emirleri (child orders) tasarımları gereği bölen bir akıllı emir yönlendirici (smart order router), stratejilerinizi çoğu zaman motor seviyesinde bir kontrolün uygulanmadığı farklı tahtalara yerleştirecektir. Firmalar bu boşluğu, emirler binadan çıkmadan önce emir yönetim katmanında kapatır. İki farklı tahtada aynı fiyattan zıt yönlerde bekleyen emirleriniz ayrıca kilitli veya çapraz piyasa oluşturur ki bu durum kendi kurallarına tabidir.
Bir tahtada seans başına kaç eşleşme gerçekleşir?
Self-match kontrolü, motorun yaptığı her eşleşmenin yolunda yer alır ve likit bir hissede bu yol gün boyu yoğundur. Aşağıdaki panel, bir hissenin tam bir seansını on beş dakikalık dilimlere ayırır ve her birindeki işlemleri sayar; en az 200 işlemin gerçekleştiği dilimleri tutar.
Her verinin arkasındaki tam SQL
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_time04:00 ET'de o hisse on beş dakikada 9402 işlem gerçekleştirmiş, 19:45 ET'de ise 200 işlem barajını aşan 64 dilim genelinde 1345 işlem yapmıştır. Her işlem, motorun bir araya getirdiği bir emir çiftidir ve kontrol, eşleşmeye izin vermeden önce her iki taraftaki tanımlayıcıları okur. Tahtada beklemeye alınan her emir, günün ilerleyen saatlerinde aynı hesaptan gelen başka bir emirle eşleşme adayıdır.
Self-trade gerçekleştiğinde bantta ne görünür?
Önlenen bir self-match geride hiçbir iz bırakmaz. Bantta yalnızca gerçekleşen işlemler yer alır ve her işlem, işlem raporlama borsasının işlemin nasıl gerçekleştiğini tanımlamak için eklediği durum kodlarıyla (condition flags) birlikte gelir. Aşağıdaki panel, bir hissenin tam bir seansını bu bayraklara göre ayırır.
Her verinin arkasındaki tam SQL
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 10Odd Lot Trade, o seansta bayraklı işlemlerin 48.34%'unu kapsar ve panel günün en yaygın 10 bayrağını listeler. Listeyi inceleyin ve nelerin eksik olduğuna dikkat edin. Kod olmaması, iki emrin aynı firmadan geldiği anlamına gelir. Gerçekleşen bir self-trade, o fiyattaki diğer işlemler gibi görünür; bu nedenle bunun gözetimi bant üzerinden değil, borsanın elindeki katılımcı tanımlayıcıları ve emirlere iliştirilmiş hesap numaraları üzerinden yapılır.
Self-match prevention nerede biter, wash trade yasası nerede başlar?
Self-match prevention bir borsa hizmetidir. Bunu siz seçersiniz, siz yapılandırırsınız; eğer kurmazsanız motor iki emrinizi memnuniyetle eşleştirir. Wash trade yasağı ise isteğe bağlı değildir ve hiçbir ayara bağlı değildir.
1934 tarihli Menkul Kıymetler Borsası Yasası'nın 9(a)(1) bölümü, yanıltıcı bir aktif işlem görünümü yaratmak amacıyla girilen ve intifa hakkı sahipliğinde değişiklik yaratmayan menkul kıymet işlemlerini kapsar. Emtia Borsası Yasası vadeli işlemler için eşdeğerini içerir ve CME Kural 534 bunu borsa kural kitabında yeniden ifade eder. FINRA Kural 5210, aracı kurumlar için her ikisinin altında yer alır ve ek materyalleri self-trade'leri doğrudan ele alır: bir firmadaki iki ilişkisiz algoritma arasındaki işlemler tek başına ihlal teşkil etmez, ancak firmadan bunları gözden geçiren ve azaltan politikalar tutması beklenir.
Birden fazla strateji çalıştıran herkes için iki sonuç doğar. Bir self-cross (kendi kendine eşleşme), hiçbir self-match talimatı ayarlamadığınız bir borsada yasağı ihlal edebilir, çünkü kural işleme ve arkasındaki niyete bağlıdır. Self-match prevention tarafından durdurulan bir self-cross ise hiçbir şeyi ihlal etmez: durdurulması zaten tüm amacın kendisidir.
Operatörler bunu nasıl yapılandırır: CME, ICE, LME ve MiFID II
CME Globex'te self-match prevention, emir girişi sırasında sunulan bir tanımlayıcı üzerinden çalışır. Firmalar kullanacakları tanımlayıcıları kaydettirir, her emir bir tane taşır ve eşleştirilmiş bir talimat, bu tanımlayıcıyı taşıyan iki emir karşılaştığında motorun hangi tarafı iptal edeceğini belirtir. Tanımlayıcı olmadan gönderilen emirler normal şekilde eşleşir; bu, yeni operatörler için tuzaktır: varsayılan ayar kapalıdır.
ICE, emir bazlı değil, işlem firması tanımlayıcısı bazında yapılandırılan ve aynı iptal sonuçlarını içeren Self-Trade Prevention Functionality'yi çalıştırır. London Metal Exchange, üye işlem tanımlayıcıları için LMEselect üzerinde Self-Execution Prevention sunar. Avrupa'da MiFID II Madde 17, algoritmik ticarette yer alan her yatırım firmasına test, kill functionality (acil durdurma) ve düzensiz işlemlerin önlenmesi dahil olmak üzere sistem ve kontrol görevi yükler. Madde 48, borsanın kendisine paralel bir görev yükler ve borsa tarafındaki önleme araçları bununla birlikte standart ekipman haline gelmiştir.
Yapılandırma, sembol bazında değil, hesap veya firma seviyesinde gerçekleşir. Tek bir dayanak varlığın opsiyon yüzeyinin büyüklüğü bunun nedenini gösterir.
Her verinin arkasındaki tam SQL
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 date2026-06-01 tarihinde, bir dayanak varlık, 112 kullanım fiyatına (strike) yayılmış, hacimli 1579 adet ayrı ayrı işlem görebilir sözleşme taşımaktaydı ve panel benzer yapıda 21 seansı kapsamaktadır. Bu sayıda sözleşme için kuralı sözleşme bazında ayarlamak yönetilemezdir. Tanımlayıcı bunun yerine hesaba eklenir ve o hesabın gönderdiği her emirle birlikte hareket eder.
Gerçekleşme günlüklerinizin açıklayamayacağı hata modu
Bu durum pratikte şu şekilde sonuçlanır. "En yeniyi iptal et" talimatı, yeni gönderdiğiniz emri, eşleşemeden hemen önce, varış anında öldürür. Botun içinden bakıldığında dizi, yeni bir emir ve ardından kimsenin talep etmediği bir iptal mesajı olarak görünür. Gerçekleşme, reddedilme veya bir neden belirten hata dizisi yoktur; bu nedenle durumla ilk kez karşılaşan operatörler, kendi iptal yollarında bir hata arama eğilimindedir.
İki alışkanlık bunu okunabilir kılar. Borsa durum mesajlarını normalleştirilmiş bir özet yerine olduğu gibi günlüğe kaydedin, çünkü önleme nedeni genellikle o mesajdaki bir alanda yer alır. Kendi kodunuzun başlatmadığı her iptal için uyarı oluşturun. Bu uyarı, otomatik işlem devre kesicileriniz ile birlikte yer almalıdır, çünkü hata aynı sınıftadır: borsa emir durumunuzu değiştirmiş ve süreciniz hiçbir şey olmamış gibi devam etmiştir.
SSS
Self-match prevention nedir?
Aynı firma veya hesap tanımlayıcısını taşıyan iki emrin birbiriyle işlem görmesini engelleyen bir eşleştirme motoru kontrolüdür. Eşleşecekleri zaman, motor emre ekli talimatı izleyerek bekleyen emri, gelen emri veya her ikisini iptal eder.
Self-trade ile wash trade aynı şey midir?
Hayır. Self-trade, aynı intifa hakkı sahibine ait iki emir arasındaki her türlü gerçekleşmedir. Wash trade ise gerçek bir piyasa riski olmadan ve yanıltıcı bir aktivite görünümü yaratma niyetiyle girilen bir self-trade'dir. İlişkisiz algoritmalar arasındaki kasıtsız self-trade'ler, kurgulanmış olanlardan farklı değerlendirilir ve firmaların bunları izlemesi beklenir.
Self-match prevention farklı borsalar arasında çalışır mı?
Hayır. Her eşleştirme motoru kontrolü yalnızca kendi tahtasındaki emirlere uygular. Bir firmadan gelen ve iki farklı borsada bekleyen iki emir birbiriyle işlem görebilir; bu iş, firmanın borsaların üzerindeki kendi işlem öncesi kontrollerine kalır.
Emrim neden gerçekleşme olmadan ve bir neden belirtilmeden iptal edildi?
"En yeniyi iptal et" self-match talimatı bir adaydır: borsa, emri varış anında, tanımlayıcınızı taşıyan bekleyen bir emirle eşleşemeden iptal etmiştir. Neden genellikle bir reddetme olarak değil, borsanın iptal mesajındaki bir alan olarak görünür.
Hangi borsalar self-match prevention tanımlayıcısı gerektirir?
Gereksinimler borsaya ve ürüne göre değişir. CME, önceden kaydedilmiş bir tanımlayıcıyı emir girişi sırasında isterken, ICE ve London Metal Exchange firma seviyesinde kendi yapılandırmalarını sunar; Avrupa borsaları ise MiFID II kapsamında sistem ve kontrol görevlerine tabidir. İşlem yaptığınız ürünün borsa kural kitabı yetkili kaynaktır.
Buradaki her panel, onu üreten SQL kodunu içerir; herhangi birini genişletip okuyabilirsiniz. İşlem yaptığınız bir hissede kotasyon veren borsaları saymak veya bir seansı durum bayraklarına göre ayırmak için Strasmore terminalinde sorunuzu yalın bir dille sorun.