İçeriğe geç

Piyasa Saatleri ve Canlıya Alma — Sürüm Gece Çıktı, Neden Açılışta Patladı?

İleri 9 dk Sık karşılaşılır

Önce şunu oku: FIX Oturumu ve Sıra Numarası — İki Gerçekleşme Nereye Kayboldu?

30 saniyede özet

Trading sisteminde ne zaman yayına çıktığın, ne çıkardığın kadar önemlidir. İşlem saatinde emir yolunu yeniden başlatmak emirleri sahipsiz bırakır; gece çıkan sürüm de açılıştan önce bir deneme emriyle sınanmalıdır.

Bir lokantada ocak değişecek. Akşam servisinin ortasında sökülürse siparişler yarıda kalır. Gece değiştirilirse sakin olur; ama kimse açılmadan bir yemek pişirmezse, bozukluğu ilk misafir bulur.

  1. Bayt: Emir geçidinin yeni sürümü hazır. Öğlen sakin, şimdi yayına alalım mı?

  2. Sen: Hayır, piyasa açık. Gece alırız.

  3. Bayt: Gece aldık, uygulama sorunsuz açıldı, loglar temiz. Artık rahat uyuyabiliriz, değil mi?

  4. Bayt: Uygulama açıldı. Sabah ilk emri gönderebilecek mi, bunu nereden biliyoruz?

Piyasa açıkken emir yoluna dokunma

Borsa günü seansBorsa gününün bir parçası: açılış öncesi, açılış seansı, sürekli işlem, kapanış seansı. Her birinde emirler farklı kurallarla işler.Sözlükte gör → ayrılır: açılış öncesi, açılış seansı, sürekli işlem ve kapanış seansı. Bu saatlerde emirler borsaya gidip gelir; defterde müşterilerin bekleyen emirleri vardır.

Emir geçidini işlem saatinde yeniden başlatmak, borsayla olan oturumu koparır. Bekleyen emirlerin takibi kaybolur, yeni emirler gönderilemez. Kapanış seansında bu, müşterinin kapanış fiyatından işlem yapamaması demektir.

Kafam karıştı, daha basit anlat

Piyasa açıkken emir yolunu yeniden başlatma. Bekleyen emirler sahipsiz kalır.

Hızlı kontrolBaşlangıç

Bir borsa günü hangi parçalardan oluşur?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Emir geçidini işlem saatinde yeniden başlatmak neden tehlikelidir?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Gece çıkmak yetmez

Sürüm gece yayına alındı; uygulama açıldı, loglar temiz. Sürümde emir göndermeyi bozan bir hata var ve açılıştan önce kimse emir göndermeyi denemiyor. Hata ne zaman görünür? Cevabı göster

Açılışta, ilk gerçek müşteri emriyle. Uygulamanın açılması, emir gönderebildiğini göstermez. Hatayı yakalayacak ilk şey gerçek bir emir olur.

Gece değiştir, açılmadan deneme yemeği pişir.
Adım adım oku
  1. Akşam servisi sürüyor.
  2. Ocak servis ortasında söküldü.
  3. Gece değişen ocak ilk misafirde bozuk.
  4. Gece değiştir, açılmadan deneme yemeği pişir.

Bu yüzden açılış öncesinde bir duman testiYayından hemen sonra sistemin en temel işini yapabildiğini gösteren kısa deneme. Trading'de açılıştan önce bir deneme emri gönderip iptal etmek gibi.Sözlükte gör → yapılır: borsaya bağlan, bir test sembolünde küçük bir emir gönder, kabul edildiğini gör ve iptal et. Başarısızsa piyasa açılmadan eski sürüme dönülür.

Kafam karıştı, daha basit anlat

Sürümü gece çıkar. Açılıştan önce bir deneme emri gönderip iptal et.

Hızlı kontrolOrta

Sürüm gece sorunsuz açıldı. Emir gönderebildiğinden nasıl emin olursun?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Hatalı sürüm gece çıktı ve açılış öncesi deneme yapılmadı. Hata ne zaman görünür?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Geri dönüş açılıştan önce hazır

Deneme başarısız olduğunda düşünecek vakit azdır; açılışa dakikalar kalmıştır. Eski sürüme dönmek tek bir komut olmalı ve daha önce denenmiş olmalı.

Kimin karar vereceği de önceden bellidir. “Açılmadan önce deneme geçmezse eski sürüme dön” kuralı, o sabah tartışma çıkmasını önler.

Kafam karıştı, daha basit anlat

Eski sürüme dönüş tek komut olsun. Kararı kimin vereceği önceden belli olsun.

Hızlı kontrolOrta

Açılış öncesi deneme başarısız oldu. Ne olmalı?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Kendin gör

Emir geçidinin yeni sürümü ne zaman yayına çıkmalı?

Tohum 668753
  1. ○ akşam (önceki gün)
  2. ○ gece
  3. ○ açılış öncesi
  4. ● açılış seansı
  5. ● sürekli işlem
  6. ● kapanış seansı

● piyasa açık · ○ piyasa kapalı · sürüm: bekliyor

· gün sürüyor

Hız
Adım 0

Şu an ne oldu?

Şu an: akşam (önceki gün)

Piyasa açık mı, kapalı mı?

Görevler0/3

  • İşlem saatinde yeniden başlat ve emirleri sahipsiz bırakaçık

    İpucu

    Sürekli işlem ya da kapanış seansında yayına al.

  • Gece çıkan hatalı sürüm açılışta patlasınaçık

    İpucu

    Gece yayına al, hata olsun, deneme emri olmasın.

  • Hatalı sürümü açılıştan önce yakalaaçık

    İpucu

    Gece yayına al ve açılış öncesi deneme emri gönder.

Olay günlüğü (0)

Henüz olay yok. Oynat veya adımla.

  1. Varsayılanla oynat. Sürüm sürekli işlem sırasında çıktı; hatasız olduğu hâlde oturum koptu ve emirler sahipsiz kaldı.
  2. Anı “gece” yap ve hatayı aç. Gece sorunsuz geçti; hata açılışta gerçek emirlerle görüldü.
  3. “Açılış öncesi deneme emri”ni aç. Hata açılıştan önce yakalandı ve eski sürüme dönüldü.
Hızlı kontrolOrta

Simülatörde sürüm hatasız olduğu hâlde sürekli işlemde yayına alınınca neden olay çıktı?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Tuzaklar

Sakin saat yanılgısı. Öğle saatlerinde işlem az olabilir, ama piyasa açıktır ve defterde emirler bekler. “Sakin” ile “kapalı” aynı şey değildir.

Gece çalışan işler. Gece de boş değildir: gün sonu mutabakatı, takas dosyaları ve raporlar o saatlerde koşar. Yayına alma zamanını bu işlerle çakışmayacak şekilde seç.

Tatil ve yarım gün. Bazı günler piyasa yarım gün açıktır ya da başka bir piyasa açıkken senin piyasan tatildir. Yayın takvimi borsa takvimine bakmalı.

Kafam karıştı, daha basit anlat

Sakin, kapalı demek değil. Gece işleriyle çakışma. Borsa takvimine bak.

Hızlı kontrolOrta

Öğle saatlerinde işlem çok az. Emir geçidini yayına almak için uygun mu?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Aşağıda bir emir geçidinin, işlem saatinde yayına almayı engelleyen ve açılış öncesi deneme emrini çalıştıran parçası var.

Derinleş · Emir geçidi: yayın penceresi ve açılış öncesi deneme 3 dosya · ~72 satır · ilk okumada atlayabilirsin
Proje dosyaları

gateway/src/main/java/com/bank/gateway/ops/ MarketCalendar.java MarketCalendar: piyasanın açık olup olmadığını seans saatleri ve tatillerle söyler; saatler ayardan gelir.

gateway/src/main/java/com/bank/gateway/ops/MarketCalendar.java
package com.bank.gateway.ops;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Set;
public final class MarketCalendar {
private final ZoneId zone;
private final LocalTime opensAt; // first moment orders can reach the book
private final LocalTime closesAt; // end of the closing auction
private final Set<LocalDate> holidays;
public MarketCalendar(ZoneId zone, LocalTime opensAt, LocalTime closesAt, Set<LocalDate> holidays) {
this.zone = zone;
this.opensAt = opensAt;
this.closesAt = closesAt;
this.holidays = Set.copyOf(holidays);
}
public boolean isOpen(ZonedDateTime when) {
ZonedDateTime local = when.withZoneSameInstant(zone);
if (holidays.contains(local.toLocalDate())) {
return false;
}
LocalTime t = local.toLocalTime();
return !t.isBefore(opensAt) && t.isBefore(closesAt);
}
}

gateway/src/main/java/com/bank/gateway/ops/ DeployGate.java DeployGate: pipeline'ın yayın adımı piyasa açıksa durur.

gateway/src/main/java/com/bank/gateway/ops/DeployGate.java
package com.bank.gateway.ops;
import java.time.Clock;
import java.time.ZonedDateTime;
/** Run by the pipeline right before the deploy step. A non-zero exit stops it. */
public final class DeployGate {
public static void main(String[] args) {
MarketCalendar calendar = CalendarConfig.load();
if (calendar.isOpen(ZonedDateTime.now(Clock.systemUTC()))) {
System.err.println("market is open: the order gateway is not deployed during trading");
System.exit(1);
}
}
}

gateway/src/main/java/com/bank/gateway/ops/ PreOpenSmokeTest.java PreOpenSmokeTest: test sembolünde bir emir gönderir, kabulünü bekler ve iptal eder; başarısızsa geri dönüş tetiklenir.

gateway/src/main/java/com/bank/gateway/ops/PreOpenSmokeTest.java
package com.bank.gateway.ops;
import java.time.Duration;
public final class PreOpenSmokeTest {
private final OrderGateway gateway;
private final String testSymbol;
public PreOpenSmokeTest(OrderGateway gateway, String testSymbol) {
this.gateway = gateway;
this.testSymbol = testSymbol;
}
/** True only if a real order went out, was accepted and was cancelled. */
public boolean run() {
if (!gateway.isLoggedOn()) {
return false;
}
String id = gateway.sendLimitBuy(testSymbol, 1, 1);
boolean accepted = gateway.awaitAck(id, Duration.ofSeconds(5));
boolean cancelled = accepted && gateway.cancelAndAwait(id, Duration.ofSeconds(5));
return accepted && cancelled;
}
}

Kendini sına

Şimşek turu1/4

Öğle saatleri sakin olduğu için emir geçidi o saatte yeniden başlatılabilir.

Soru 1/3İleri

Gece yayına alma zamanı seçerken başka neye dikkat edilmeli?

Cevabı biliyor musun?Önce birini seç. Tekrar zamanlaması buna göre ayarlanıyor.

Aklında kalacak üç şey

  1. 1 Emir yoluna işlem saatinde dokunulmaz. Yeniden başlatma borsa oturumunu koparır; defterde bekleyen emirler sahipsiz kalır.
  2. 2 Sürüm piyasa kapalıyken çıkar, ama gece sorunsuz açılması emir gönderebildiği anlamına gelmez.
  3. 3 Açılıştan önce bir deneme emri gönderilir ve iptal edilir. Hata gerçek emirle değil, denemeyle yakalanır; gerekirse açılıştan önce eski sürüme dönülür.
Sonraki kapı Bölünme sabahı bir müşteri aradı: portföyü yarı yarıya erimiş. Piyasa sakindi, hisse aynı hisseydi. Ne oldu? Hak Kullanımı — Bölünme Sabahı Müşteri Neden Yarı Yarıya Zararda Göründü? · 9 dk

4 kart sonraki derste seni bekliyor

0/4 kart bu dersten toplandı