İçeriğe geç

İşlem Öncesi Risk ve Kill Switch — Strateji Durmadan Emir Yağdırırsa?

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

Önce şunu oku: Emrin Yaşam Döngüsü — İptal Ettim Sandım, Borsa Neden Doldurdu?

30 saniyede özet

Bir strateji bozulduğunda saniyeler içinde binlerce emir gönderebilir. Emri borsaya gitmeden önce ayrı bir risk kapısı kontrol eder: tek emir ve pozisyon sınırları zararı keser, kill switch ise kaynağı durdurur.

Bir paketleme bandı kutuları kamyona taşıyor. Bir gün makine bozuluyor ve aynı kutuyu durmadan banda atmaya başlıyor. Bandın başında bir kırmızı düğme yoksa, kamyon dolana kadar kimse bir şey yapamaz.

  1. Bayt: Yeni sürüm canlıda. Strateji ilk emri gönderdi: 100 lot. Her şey yolunda!

  2. Sen: Sonraki emir 10.000 lot. Bir sıfır fazla yazılmış. Sonra aynı 500 lot art arda gidiyor.

  3. Bayt: Strateji döngüye girmiş! Kodu düzeltene kadar kaç emir daha gidecek?

  4. Bayt: Kodu düzeltmeyi beklemeden emirleri durduracak bir yer olmalıydı.

Emri gönderen, emri durduramaz

Bir stratejinin içine yazılmış sınır, stratejiyle birlikte bozulur. Döngüye giren kod, sınır kontrolünü de atlıyor olabilir.

Bu yüzden işlem öncesi risk kontrolüBir emir borsaya gitmeden önce bağımsız bir katmanda yapılan kontroller: emir büyüklüğü, pozisyon, fiyat, emir hızı.Sözlükte gör → ayrı bir katmandadır: her emir borsaya gitmeden önce bu kapıdan geçer. Kapı, emri kimin gönderdiğine bakmadan aynı kuralları uygular.

Kafam karıştı, daha basit anlat

Kontroller stratejinin içinde değil, borsaya giden yolun üstünde durur.

Hızlı kontrolBaşlangıç

İşlem öncesi risk kontrolü ne zaman yapılır?

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

Risk kontrolleri neden stratejinin içinde değil, ayrı bir katmanda olmalı?

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

Sınırlar zararı keser

İlk kapı, tek bir emrin büyüklüğüne bakar. Bir sıfır fazla yazılmış emir, yani bir fat fingerYanlış yazılmış emir: bir sıfır fazla, yanlış fiyat ya da yanlış yön. Tek emir sınırı gibi kontrollerle yakalanır.Sözlükte gör → hatası burada durur. İkinci kapı toplam pozisyona bakar: sınırı aşacak emir geri çevrilir.

Tek emir ve pozisyon sınırı açık, kill switch kapalı. Strateji aynı 500 lotluk emri döngüde göndermeye devam ediyor. Pozisyon sınıra gelince ne olur? Cevabı göster

Pozisyon sınırda kalır, ama strateji durmaz. Her yeni emir sınıra çarpıp geri çevrilir. Zarar sınırlandı; bozuk kod hâlâ çalışıyor.

Kırmızı düğme: önce durdur, sonra bak.
Adım adım oku
  1. Bant kutuları kamyona taşıyor.
  2. Dev bir kutu kapıda kaldı.
  3. Makine aynı kutuyu tekrar tekrar atıyor.
  4. Kırmızı düğme: önce durdur, sonra bak.
Kafam karıştı, daha basit anlat

Sınırlar büyük emri ve aşırı pozisyonu durdurur. Bozuk stratejiyi durdurmaz.

Hızlı kontrolOrta

Fat finger hatası nedir?

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

Pozisyon sınırı açık, kill switch kapalı. Döngüye giren strateji ne yapar?

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

Kill switch kaynağı durdurur

kill switchBir stratejiyi ya da bütün emir akışını tek hamlede durduran düğme. Kendiliğinden geri açılmaz; açmak bir insanın kararıdır.Sözlükte gör →, bir stratejiyi ya da bütün emir akışını tek hamlede durdurur. Bir insan basabilir; art arda aynı emir ya da çok hızlı emir gibi bir desen görülünce kendiliğinden de devreye girebilir.

Kill switch kendiliğinden geri açılmaz. Durum anlaşılana kadar strateji kapalı kalır; geri açmak bilinçli bir karardır.

Kafam karıştı, daha basit anlat

Kill switch stratejiyi durdurur ve bir insan karar verene kadar kapalı tutar.

Hızlı kontrolOrta

Kill switch devreye girdikten sonra strateji nasıl yeniden açılmalı?

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

Kendin gör

Bozulan bir strateji emir yağdırıyor

Tohum 703723
  1. 100·
  2. 10000·
  3. 500·
  4. 500·
  5. 500·
  6. 500·
  7. 500·
  8. 500·

· Pozisyon: 0 lot (sınır 3000)

Hız
Adım 0

Şu an ne oldu?

Pozisyon: 0 lot

Her emir borsaya gitmeden önce risk kapısından geçiyor.

Görevler0/3

  • Pozisyon sınırın çok üstüne çıksınaçık

    İpucu

    Hiçbir kontrolü açma.

  • Pozisyon sınırda kalsın, ama strateji durmasınaçık

    İpucu

    Sınırları aç, kill switch kapalı kalsın.

  • Büyük emri reddet ve döngüdeki stratejiyi durduraçık

    İpucu

    Tek emir sınırı ve kill switch.

Olay günlüğü (0)

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

  1. Varsayılanla oynat. Hiçbir kontrol yok: 10.000 lotluk hata da döngüdeki altı emir de borsaya gitti.
  2. Tek emir ve pozisyon sınırlarını aç. Büyük emir ve sınırı aşan emir durdu; strateji yine de emir göndermeye devam etti.
  3. Tek emir sınırı ve kill switch’i aç. Art arda üçüncü aynı emirde strateji durduruldu; pozisyon 1.100 lotta kaldı.
Hızlı kontrolOrta

Simülatörde tek emir sınırı ve kill switch açıkken pozisyon neden 1.100 lotta kaldı?

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

Tuzaklar

Hiç denenmemiş kill switch. Kill switch yalnızca kötü günde kullanılır; o gün çalışmazsa çok geçtir. Test ortamında düzenli olarak bas ve stratejinin gerçekten durduğunu gör.

Yeniden başlatınca açılan strateji. Uygulama yeniden başlayınca kill switch durumu sıfırlanırsa, bozuk strateji kendiliğinden geri döner. Durumu kalıcı bir yerde tut.

Sürümle gelen bozukluk. Pek çok kaçak emir olayı yeni bir sürümle başlar. Canlıya çıkışta sınırları dar tut ve ilk dakikaları yakından izle.

Kafam karıştı, daha basit anlat

Kill switch’i düzenli dene, durumunu kalıcı tut, canlıya çıkışta sınırları daralt.

Hızlı kontrolOrta

Kill switch durumu yalnızca bellekteki bir değişkende tutuluyor. Risk ne?

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

Aşağıda borsaya giden yolun üstündeki risk kapısı var: her emir sırayla kontrollerden geçer, kill switch hepsinin önündedir.

Derinleş · Risk kapısı: sınırlar ve kill switch 3 dosya · ~82 satır · ilk okumada atlayabilirsin
Proje dosyaları

risk/src/main/java/com/bank/risk/ RiskCheck.java RiskCheck: her kontrol tek bir kuraldır; emri geçirir ya da bir sebeple reddeder.

risk/src/main/java/com/bank/risk/RiskCheck.java
package com.bank.risk;
import java.util.Optional;
public interface RiskCheck {
/** Empty when the order may pass; otherwise the reason it may not. */
Optional<String> reject(NewOrder order, Exposure exposure);
static RiskCheck maxOrderQty(long max) {
return (order, exposure) -> order.quantity() > max
? Optional.of("order quantity " + order.quantity() + " above " + max)
: Optional.empty();
}
static RiskCheck maxPosition(long max) {
return (order, exposure) -> exposure.positionAfter(order) > max
? Optional.of("position would reach " + exposure.positionAfter(order))
: Optional.empty();
}
}

risk/src/main/java/com/bank/risk/ KillSwitch.java KillSwitch: durum kalıcı bir depoda tutulur; yeniden başlatma onu açmaz, açmak bir insanın işidir.

risk/src/main/java/com/bank/risk/KillSwitch.java
package com.bank.risk;
public final class KillSwitch {
private final KillSwitchStore store; // a table row, not a field: survives restarts
public KillSwitch(KillSwitchStore store) {
this.store = store;
}
public boolean isEngaged(String strategyId) {
return store.isEngaged(strategyId);
}
public void engage(String strategyId, String reason) {
store.engage(strategyId, reason);
}
/** Only a person re-enables a strategy, and it is recorded who did. */
public void release(String strategyId, String operator) {
store.release(strategyId, operator);
}
}

risk/src/main/java/com/bank/risk/ RiskGateway.java RiskGateway: emir önce kill switch'e, sonra sırayla kontrollere bakar; art arda aynı emirde stratejiyi durdurur.

risk/src/main/java/com/bank/risk/RiskGateway.java
package com.bank.risk;
import java.util.List;
import java.util.Optional;
public final class RiskGateway {
private static final int REPEAT_LIMIT = 3;
private final KillSwitch killSwitch;
private final List<RiskCheck> checks;
private final ExchangeSession exchange;
private final RepeatDetector repeats = new RepeatDetector(REPEAT_LIMIT);
public RiskGateway(KillSwitch killSwitch, List<RiskCheck> checks, ExchangeSession exchange) {
this.killSwitch = killSwitch;
this.checks = List.copyOf(checks);
this.exchange = exchange;
}
public Decision submit(NewOrder order, Exposure exposure) {
if (killSwitch.isEngaged(order.strategyId())) {
return Decision.rejected("strategy stopped");
}
if (repeats.isRunaway(order)) {
killSwitch.engage(order.strategyId(), "identical orders in a row");
return Decision.rejected("strategy stopped: runaway pattern");
}
for (RiskCheck check : checks) {
Optional<String> reason = check.reject(order, exposure);
if (reason.isPresent()) {
return Decision.rejected(reason.get());
}
}
exchange.send(order);
return Decision.sent();
}
}

Kendini sına

Şimşek turu1/4

Stratejinin içine yazılmış bir sınır, stratejinin hatasına karşı tek başına yeterlidir.

Soru 1/3İleri

Kill switch'in çalıştığından nasıl emin olursun?

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

Aklında kalacak üç şey

  1. 1 Emri gönderen kodun hatası, emri durduran ayrı bir katmanla yakalanır. Kontroller stratejinin içinde değil, borsaya giden yolun üstündedir.
  2. 2 Tek emir ve pozisyon sınırları zararı keser ama bozuk stratejiyi durdurmaz; strateji sınıra çarpmaya devam eder.
  3. 3 Kill switch, ne olduğu anlaşılmadan önce kaynağı durdurur. Kendiliğinden geri açılmaz; bir insan bakıp karar verir.
Sonraki kapı Müşteri bugün 6.000 lot almak istiyor. Hepsini açılışta gönderirsen ne olur, güne yayarsan neyi kaybedersin? TWAP, VWAP, POV — 6.000 Lotu Kimse Fark Etmeden Nasıl Alırsın? · 10 dk

4 kart sonraki derste seni bekliyor

0/4 kart bu dersten toplandı

Bu dersin üstüne kurulanlar

Bunlar bu dersi temel alıyor; hazır olduğunda devam edebilirsin.