FIX Oturumu ve Sıra Numarası — İki Gerçekleşme Nereye Kayboldu?
Önce şunu oku: Emrin Yaşam Döngüsü — İptal Ettim Sandım, Borsa Neden Doldurdu?
30 saniyede özet
FIX oturumunda her mesajın bir sıra numarası vardır. Numaradaki boşluk kaybolmuş bir mesajdır ve tekrar istenir. Tekrar gelen mesajlar zaten işlenmiş olabilir; yalnızca beklenen numara işlenir, küçük olanlar atlanır.
Bir sözleşme sana sayfa sayfa geliyor ve her sayfanın altında bir numara var. İkinci sayfadan sonra beşinci sayfa geldi. Numaraya bakan biri hemen anlar: iki sayfa yolda kaybolmuş.
-
Bayt: Borsadan gerçekleşmeler akıyor, her biri 100 lot. Ağ bir an gidip geldi, sonra devam etti.
-
Sen: Gün sonu: borsa 600 lot diyor, OMS 400 lot. Hiç hata kaydı yok.
-
Bayt: Hata yoksa 200 lot nereye gitti? Bağlantı koptu ama geri geldi ki!
-
Bayt: Mesajların numarasına hiç bakmamışız. Sayfa eksik mi, kimse saymamış.
Her mesajın bir numarası var
Aracı kurumlar ve borsalar emirleri çoğu zaman FIXFinancial Information eXchange: emir, gerçekleşme ve iptal mesajları için yaygın standart. Bir oturum katmanı ve iş mesajlarından oluşur.Sözlükte gör → ile konuşur. İki taraf bir oturum açar ve oturum boyunca gönderdikleri her mesajı numaralar.
Bu sıra numarasıFIX oturumunda her mesaja verilen, birer artan numara (MsgSeqNum, tag 34). Boşluk kayıp, küçük numara tekrar demektir.Sözlükte gör → 1’den başlar ve her mesajda bir artar. Alıcı bir sonraki numarayı bilir: 2’yi aldıysa 3’ü bekler.
Kafam karıştı, daha basit anlat
Her mesajın bir sıra numarası var. Alıcı hep bir sonrakini bekler.
FIX nedir?
Alıcı 2 numaralı mesajı işledi. Hangi numarayı bekler?
Boşluk, kaybolmuş bir mesajdır
OMS 2 numaralı mesajı işledi ve 3'ü bekliyor. Gelen mesajın numarası 5. Bu ne demek ve OMS ne yapmalı? Cevabı göster
3 ve 4 numaralı mesajlar kaybolmuş. OMS boşluğu fark edip 3’ten itibaren mesajları tekrar istemeli. 5’i şimdi işlerse, 3 ve 4’ün eksik olduğunu unutabilir.
Adım adım oku
- Sözleşme sayfa sayfa geliyor.
- 2'den sonra 5 geldi.
- 3'ten itibaren tekrar gönderin.
- Her sayfa bir kez, sırayla dosyada.
Eksik mesajlar bir ResendRequestFIX'te kaybolan mesajları belirli bir numaradan itibaren tekrar isteyen mesaj (MsgType 2). Tekrar gelenler PossDup işaretlidir.Sözlükte gör → ile istenir: “3’ten itibaren tekrar gönder”. Karşı taraf 3, 4, 5 ve 6’yı yeniden yollar.
Kafam karıştı, daha basit anlat
Beklenenden büyük numara gelirse, arada kaybolan var. Ondan itibaren tekrar iste.
OMS 3'ü beklerken 5 numaralı mesaj geldi. Bu ne demek?
Boşluk görülünce OMS ne yapmalı?
Tekrar gelen, tekrar sayılmaz
Tekrar gönderilen mesajlar PossDup işaretiyle gelir: “bunu daha önce görmüş olabilirsin”. 5 ve 6 ilk seferde de gelmişti. İkisini yeniden işleyen OMS, 200 lotu iki kez sayar.
Kural basittir: yalnızca beklenen numarayı işle. Küçük numara zaten işlenmiştir, atla. Büyük numara bir boşluğun habercisidir, tekrar iste.
Kafam karıştı, daha basit anlat
Beklenen numarayı işle. Küçüğü atla, büyüğü görünce tekrar iste.
Tekrar gönderilen ve numarası beklenenden küçük, PossDup işaretli bir mesaj geldi. Ne yapılır?
Kendin gör
FIX oturumunda iki mesaj kayboldu
Tohum 912185- #1 ·
- #2 ·
- #3 ·
- #4 ·
- #5 ·
- #6 ·
Beklenen: #1 · tekrar isteği: — yok · atlanan: —
· OMS: 0 lot · borsa: 600 lot
Şu an ne oldu?
Beklenen numara: #1
Her mesajın bir sıra numarası var. Arada boşluk var mı?
Görevler0/3
İki gerçekleşme sessizce kaybolsunaçık
İpucu
Numaraya bakma.
Tekrar iste, ama pozisyon şişsinaçık
İpucu
Gelen her mesajı işle.
Pozisyon borsayla birebir tutsunaçık
İpucu
Yalnızca sıradakini işle.
Olay günlüğü (0)
Henüz olay yok. Oynat veya adımla.
- Varsayılanla oynat. 3 ve 4 kayboldu; OMS numaraya bakmadığı için fark etmedi. 400 lot.
- “Tekrar iste, geleni hep işle”yi seç. Boşluk fark edildi ama 5 ve 6 iki kez işlendi: 800 lot.
- “Yalnızca sıradakini işle”yi seç. İlk gelen 5 ve 6 atlandı, tekrar gelenler sırayla işlendi: 600 lot.
Simülatörde "tekrar iste, geleni hep işle" neden 800 lot gösterdi?
Tuzaklar
Numarayı bellekte tutmak. Uygulama yeniden başlayınca numaralar sıfırlanırsa, karşı taraf “beklenenden küçük numara” görür ve oturumu kapatabilir. Sıra numaraları ve gönderilen mesajlar diske yazılmalı.
Gün başı sıfırlaması. Numaralar çoğu zaman her işlem günü başında 1’e döner. İki tarafın sıfırlama saati uyuşmazsa sabah ilk bağlantıda oturum açılmaz.
Sessiz bağlantı. Bir süre mesaj gelmemesi, bağlantının koptuğu anlamına gelebilir. FIX bunun için düzenli Heartbeat ve cevap bekleyen TestRequest mesajları kullanır.
Kafam karıştı, daha basit anlat
Numaraları diske yaz. Sıfırlama saatini karşı tarafla eşle. Sessizliği Heartbeat ile yokla.
OMS yeniden başlayınca sıra numarasını 1'den başlatıyor. Ne olur?
Aşağıda bir QuickFIX/J oturum ayarı ve sıra numarası kuralını gösteren küçük bir sınıf var. Gerçek FIX motorları bu kuralı kendisi uygular; sınıf, motorun ne yaptığını görmek için.
Derinleş · Borsa bağlantısı: FIX oturumu ve sıra numarası 3 dosya · ~67 satır · ilk okumada atlayabilirsin
Kendini sına
FIX oturumunda her mesajın bir sıra numarası vardır.
PossDup işareti olmadan, beklenenden küçük numaralı bir mesaj geldi. FIX bunu nasıl görür?
Aklında kalacak üç şey
- 1 FIX oturumunda iki taraf da gönderdiği her mesajı numaralar. Beklenenden büyük bir numara, arada kaybolmuş mesajlar olduğunu söyler.
- 2 Boşluk görülünce eksik mesajlar ResendRequest ile tekrar istenir. Tekrar gelenler PossDup işaretiyle gelir ve bir kısmı zaten işlenmiş olabilir.
- 3 Yalnızca beklenen numarayı işlemek iki hatayı birden önler: kaybolanı fark etmemek ve aynı gerçekleşmeyi iki kez saymak.
4 kart sonraki derste seni bekliyor
Bu dersin üstüne kurulanlar
Bunlar bu dersi temel alıyor; hazır olduğunda devam edebilirsin.