Piyasa yoğunlaştığında işlem ekranlarındaki emir defteri donuyor ya da sıçrıyorsa, kusur genellikle piyasa verisi akışındadır. Akış güncellemeleri girişte kaybeder, defteri yanlış oluşturur ya da yüzlerce ekrana fazla yavaş gönderir. Önce en yoğun saatinizi ölçün, sonra her firmayı o günün kaydı üzerinde test edin.
Piyasa yoğunlaştığında işlem ekranlarınızdaki emir defteri donuyor, sıçrıyor ya da imkânsız fiyatlar gösteriyorsa, hata genellikle üç yerden birindedir. Güncellemeler borsa akışının girdiği yerde kaybolur, defter yanlış oluşturulur ya da yüzlerce ekrana fazla yavaş ulaşır. Kimseyle anlaşmadan önce en yoğun saatinizi ölçün, sonra düşündüğünüz her firmayı o günün kaydı üzerinde test edin.
Kısa yanıt: borsa gönderdiği her güncellemeyi numaralandırır. İyi kurulmuş bir sistem eksik bir numarayı anında fark eder, defteri güncel değil olarak işaretler ve yeniden kurar. Sorun, boşluk fark edilmediğinde, yeniden kurulum saniyeler sürdüğünde ya da tek bir yavaş bağlantı bütün trader'ları beklettiğinde başlar. En yoğun gününüzün akışını kaydedin ve bu kaydın yeniden oynatılmasını her firmanın geçmesi gereken test yapın: bir ürün satın almadan önce de, bir ekip sizin için geliştirme yaptığında ilk aşamanın geçme eşiği olarak da.
Ayrıca okuyun
Sorun, bir merkez bankası açıklaması ya da piyasanın açılışı gibi en yoğun anlarda ortaya çıkar. Ekrandaki defter bir iki saniye durur, sonra sıçrar. İptal edilmiş emirler görünmeye devam eder. Bazen bir alıcının teklif ettiği en yüksek fiyat, bir satıcının istediği en düşük fiyatın üzerinde durur; buna kesişen defter (crossed book) denir. Tek bir borsada, açılış ve kapanış seansları dışında, böyle emirler anında eşleşirdi. Dolayısıyla ekranınızda tek bir borsaya ait kesişen bir defter görmek, o defterin sizdeki kopyasının yanlış olduğu anlamına gelir.
Ardından destek ekibine, aynı enstrüman için farklı defterler gören iki trader'dan ekran görüntüleri gelir. Ya da bir trader, ekranda başka bir fiyat gördüğü için bir emrin gerçekleştiği fiyata itiraz eder.
Bir borsanın emir defteri akışı, art arda gelen küçük değişikliklerden oluşur: eklenen bir emir, iptal edilen bir emir, bir işlem. Sisteminiz defterin snapshot adı verilen tam bir kopyasıyla başlar ve değişiklikleri sırayla uygular. Her değişiklik numaralıdır, bu sayede eksik olan fark edilebilir. Nasdaq'ın TotalView-ITCH 5.0 akışına ait spesifikasyonu, akışın “sıra numaralı bir dizi mesajdan oluştuğunu”, yani mesajların sırayla numaralandığını söylüyor.
Yoğun bir piyasada değişikliklerin akışı keskin biçimde artar. Bazıları yolda ya da kendi sunucularınızın içinde kaybolur, bazıları da sırası bozuk gelir. Sistem boşluğu kaçırırsa, ne gelirse uygular ve artık borsayla uyuşmayan bir defter gösterir. Boşluğu fark eder ama toparlanması saniyeler sürerse ekran donup kalır.
Borsalar, müşterilerinin güncelleme kaybedeceğini öngörür. CME Group'un MDP 3.0 akışına ait dokümantasyonu, bir boşluktan sonra “müşteri sisteminde tutulan tüm defterlerin artık doğru ve en güncel durumda olmayabileceğinin varsayılması gerektiğini” söylüyor.
Üç yer vardır ve her biri kendi çözümünü gerektirir. Mühendisler üçüncüsüne fan-out der, çünkü tek bir güncelleme akışı yelpaze gibi açılarak birçok ekrana dağılır. Yukarıda bağlantısı verilen teknik yazı üçünü de ayrıntılı olarak ele alıyor.
İlk yer, borsa akışının geldiği giriş noktasıdır. Bazı borsalar kaybolan veriyi geri almanın yollarını sunar. Nasdaq'ın veri iletim protokollerinden biri olan MoldUDP64, alıcıların “kaçırılan paketleri tespit edip yeniden istemesine” olanak tanır. CME akışını A ve B adlı iki hat üzerinden iki kez gönderir ve defterleri güncel hâle getirmek için ayrı bir snapshot akışı çalıştırır. Sisteminiz boşluğu fark etmezse bunların hiçbiri işe yaramaz.
Sonra defter oluşturulur; buradaki tehlike, bir değişikliğin iki kez, sırasız ya da yanlış snapshot'ın üzerine uygulanmasıdır. Bir kripto borsası olan Binance, rehberinde bir snapshot'ı canlı akışa eklemenin adımlarını tek tek sıralıyor. Bu adımlar izlenmeden oluşturulan bir defter yine fiyat gösterir ve sorunsuz görünür, ama fiyatlar yanlıştır.
En sonda fan-out gelir: defter, bağlı her ekran için bir tane olmak üzere yüzlerce trader oturumuna gönderilir. Zayıf bir mobil bağlantıdaki bir trader ya da takılmış bir terminal güncellemeleri yavaş okur. Sunucu o oturumu beklerse diğer tüm oturumlar da bekler. O oturumda biriken güncellemelerin sınırsız büyümesine izin vermek de daha iyi değildir, çünkü sunucunun belleği tükenir ve sistem herkes için çöker.
İyi kurulmuş bir sistemde sunucu güncellemeleri bir kez sıraya koyar ve aynı sonucu her oturuma gönderir. Geride kalan bir oturum ya defterin en güncel resmini alıp aradaki adımları atlar ya da sunucu bağlantısını bir gerekçe bildirerek keser ve ekran yeni bir kopyayla yeniden bağlanır. Bir akış aynı anda birden fazla yerde bozulabilir.
Son ayın en yoğun saatini alın ve o saat için şu rakamları toplayın:
Ardından yoğun bir günün ham akışını, her paketin geliş zamanıyla birlikte tam geldiği gibi kaydedin. Bu kaydı gerçek hızda ve daha hızlı yeniden oynatmak, listenizdeki her firmaya uygulayacağınız ve her düzeltmeden sonra tekrarlayacağınız testtir.
Borsa akışını alıp defteri tutan yazılıma feed handler denir. Önünüzde üç yol var ve ölçümleriniz bunlardan birini göstermeli. Son ikisi birlikte de uygulanabilir.
Ölçümler, fark edilmeyen boşluklar ya da yavaş bir yeniden kurulum gibi tek ve net bir hataya işaret ediyorsa ve kodu bilen insanlar hâlâ ekipteyse, elinizdeki feed handler'ı düzeltin.
Hazır bir feed handler, borsaya bağlanan, boşlukları yakalayan ve sisteminize doğru ve güncel bir defter teslim eden lisanslı bir yazılımdır. Yönetilen akış (managed feed) bir adım daha ileri gider: borsalara bir piyasa verisi sağlayıcısı bağlanır, siz de ondan tek formatta tek bir akış alırsınız.
Giriş noktası sorunsuz çalıştığı hâlde sorun sürüyorsa, trader'lara veri gönderen katmanı yeniden kurun: trader'lar hâlâ farklı defterler görüyordur, tek bir yavaş oturum diğerlerini aşağı çekiyordur ya da bugünkünden çok daha fazla oturuma hizmet vermeyi planlıyorsunuzdur.
Listenizdeki her firmayı aynı beş teste tabi tutun:
amBrain, algoritmik trading altyapısı geliştirir: emir gerçekleştirme, piyasa verisi ve işlem öncesi risk kontrolleri.
amBrain'in web sitesindeki bir satır şöyle: “Trading terminali geliştirme, emir yönetim sistemleri ve FIX protokolü ile borsa entegrasyonu.”
amBrain; trading ve reklam teknolojisi alanlarındaki yavaş sistemleri teşhis eder: çalışan platform uçtan uca ölçülür ve rapor, sürenin nereye gittiğini açıkça gösterir.
amBrain 2019'dan bu yana yazılım geliştiriyor. Ekibini tek satırda şöyle tanımlıyor: “40 kişiye kadar bir ekip, yaklaşık %75'i kıdemli.” Üç formatta çalışıyor: tam teslim, özel ekip ya da sizin ekibinize yerleşen mühendisler. Müşteri, amBrain'in yeniden kullanılabilir bileşenleri dışında ürünün ve kodun tam mülkiyetini elinde tutar.
Bu yazı bir vaka çalışması değildir ve hiçbir müşteri işini anlatmaz. amBrain'in kurduğu hiçbir sistem için gecikme rakamı vermez; fiyat ya da takvim de vermez.
amBrain kısa listenizdeyse, ona da diğer her firmaya sorduğunuz beş soruyu sorun ve üzerinde anlaştığınız her iş için kaydınızı geçme eşiği yapın.
Mevcut mimarinizi ve sizi endişelendiren hata senaryosunu getirin; yarım saatte birlikte üzerinden geçelim.