Bu sayfa otomatik olarak çevrilmiştir. İngilizce orijinal kanonik versiyondur. İngilizce oku →
Ana içeriğe geç

Piyasa Yapıcı Koruması (MMP)

Piyasa yapıcılar için gerçekleşme (fill) penceresi limitleri ve otomatik iptal davranışı.

Genel Bakış​

MMP, piyasa yapıcıları hızlı ve olumsuz gerçekleşmelerden şu şekilde korur:

  1. Kayan bir zaman penceresi içinde kümülatif gerçekleşme metriklerini takip eder
  2. Limitler aşıldığında emirleri iptal eder
  3. Aynı cüzdan+dayanak varlık için MMP etkin diğer tüm emirleri otomatik olarak iptal eder

Yapılandırma​

MMP Yapılandırmasını Ayarlama​

Endpoint: POST /mmp-config

İstek: SetMmpConfigRequest

{
"wallet": "0x...",
"currency": "BTC",
"interval_ms": 60000,
"frozen_time_ms": 300000,
"qty_limit": 1000000,
"delta_limit": 10.0,
"vega_limit": 5.0,
"enabled": true,
"nonce": 1,
"signature": "0x..."
}

Alanlar:

  • wallet: Cüzdan adresi
  • currency: Dayanak varlık para birimi (örn. "BTC", "ETH")
  • interval_ms: Kayan pencere uzunluğu (milisaniye)
  • frozen_time_ms: Tetiklenme sonrası dondurma süresi (milisaniye)
  • qty_limit: İsteğe bağlı miktar limiti (kontrat birimi)
  • delta_limit: İsteğe bağlı delta limiti
  • vega_limit: İsteğe bağlı vega limiti
  • enabled: Bu cüzdan+para birimi için MMP'nin etkin olup olmadığı

Yanıt: ApiResponse<MmpConfigData>

MMP Yapılandırmasını Görüntüleme​

Endpoint: GET /mmp-config?wallet=...&currency=...

Sorgu parametreleri:

  • wallet (zorunlu)
  • currency (isteğe bağlı filtre)

Yanıt: MmpConfigResponse

{
"success": true,
"data": [
{
"wallet_address": "0x...",
"currency": "BTC",
"interval_ms": 60000,
"frozen_time_ms": 300000,
"qty_limit": 1000000,
"delta_limit": 10.0,
"vega_limit": 5.0,
"enabled": true
}
]
}

MMP Yapılandırmasını Silme​

Endpoint: DELETE /mmp-config

İstek: DeleteMmpConfigRequest

{
"wallet": "0x...",
"currency": "BTC",
"nonce": 1,
"signature": "0x..."
}

Yanıt: ApiResponse<String>

MMP Durumunu Sıfırlama​

Endpoint: POST /mmp-config/reset

İstek: ResetMmpRequest

{
"wallet": "0x...",
"currency": "BTC",
"nonce": 1,
"signature": "0x..."
}

Yanıt: ApiResponse<String>

Notlar: MMP gerçekleşme penceresi durumunu sıfırlar (kümülatif metrikleri temizler, para biriminin dondurulmasını kaldırır).

MMP Davranışı (Anlaşılması Kritik)​

Gerçekleşme İşleme Sırası​

MMP değerlendirmesi GERÇEKLEŞME SONRASI yapılır:

  1. Motor eşleştirmeyi yapar ve önce gerçekleşmeyi kabul eder
  2. Ardından MMP kümülatif metrikleri kontrol eder
  3. Limitler aşılmışsa:
    • MMP tetiklenir
    • Aktif emirdeki kalan miktarın işlenmesi durur
    • Emir, "MMP triggered during fill processing" gerekçesiyle CANCELED durumuna geçer
    • Motor MmpTriggered olayı yayınlar
    • Motor, aynı cüzdan+dayanak varlık için MMP etkin diğer tüm açık emirleri otomatik olarak iptal eder

Sonuç: MMP tetiklenmeden önce, sizi yapılandırdığınız eşiklerin ötesine taşıyan gerçekleşmeler alabilirsiniz.

Tetiklenme Koşulları​

Yapılandırılmış limitlerden herhangi biri aşılırsa MMP tetiklenir:

  • Miktar limiti: cumulative_qty > qty_limit
  • Delta limiti: |cumulative_delta| > delta_limit
  • Vega limiti: |cumulative_vega| > vega_limit

Kümülatif metrikler, kayan pencere (interval_ms) üzerinden hesaplanır.

İptal Davranışı​

MMP tetiklendiğinde:

  1. Aktif emir: Kalan miktar durur, emir "MMP triggered during fill processing" gerekçesiyle CANCELED durumuna geçer
  2. Diğer emirler: Aynı cüzdan+dayanak varlık için MMP etkin diğer tüm açık emirler, "Order canceled by MMP trigger" gerekçesiyle otomatik olarak iptal edilir

Not: Yalnızca MMP etkin emirler iptal edilir. mmp_enabled=false olan emirler etkilenmez.

Dondurma Davranışı​

MMP tetiklendikten sonra:

  • Para birimi frozen_time_ms milisaniye boyunca dondurulur
  • Dondurma süresince yeni gerçekleşmeler reddedilebilir (uygulamaya bağlıdır)

Gerçekleşme Metriklerinin Hesaplanması​

Miktar​

  • Kaynak: Gerçekleşme size değeri (kontrat birimi)
  • Kümülatif: Kayan pencere içindeki tüm gerçekleşmelerin toplamı

Delta​

  • Kaynak: Gerçekleşme sembolünden ve GreeksCache'ten hesaplanır
  • Kümülatif: Kayan pencere içindeki tüm gerçekleşme deltalarının toplamı

Vega​

  • Kaynak: Gerçekleşme sembolünden ve GreeksCache'ten hesaplanır
  • Kümülatif: Kayan pencere içindeki tüm gerçekleşme vegalarının toplamı

Kayan Pencere​

Pencereden Çıkarma​

interval_ms süresinden eski gerçekleşmeler pencereden otomatik olarak çıkarılır:

  • Çıkarma işlemi periyodik olarak çalışır (arka plan görevi)
  • Eski gerçekleşmeler çıkarıldıkça kümülatif metrikler azaltılır

Pencere Sıfırlama​

MMP durumunu POST /mmp-config/reset ile sıfırlayın:

  • Penceredeki tüm gerçekleşmeleri temizler
  • Kümülatif metrikleri sıfıra sıfırlar
  • Para biriminin dondurulmasını kaldırır

MMP Olayları​

MmpTriggered Olayı​

Dahili olay (şu anda WS istemcilerine iletilmemektedir):

MmpTriggeredMessage {
wallet: WalletAddress,
currency: String,
reason: String, // "qty_limit" | "delta_limit" | "vega_limit"
}

En İyi Uygulamalar​

Yapılandırma​

  1. Uygun limitler belirleyin: Risk toleransınıza ve tipik gerçekleşme büyüklüklerinize göre
  2. Para birimine özel yapılandırmalar kullanın: Her dayanak varlık (BTC, ETH vb.) için ayrı yapılandırın
  3. MMP tetiklenmelerini izleyin: Yüksek tetiklenme oranı, yanlış yapılandırılmış limitlere veya olumsuz piyasa koşullarına işaret edebilir

Emir Yönetimi​

  1. MMP'yi seçici olarak etkinleştirin: mmp_enabled=true ayarını yalnızca korunmasını istediğiniz emirler için kullanın
  2. Tutarlı para birimi kullanın: Aynı dayanak varlık için tüm emirlerin MMP yapılandırmasında aynı para birimini kullandığından emin olun
  3. MMP iptallerini yönetin: MMP tarafından tetiklenen iptalleri tespit eden ve kotasyonları buna göre ayarlayan bir mantık uygulayın

İzleme​

  1. MMP tetiklenmelerini takip edin: "MMP triggered during fill processing" ve "Order canceled by MMP trigger" gerekçelerini izleyin
  2. Gerçekleşme pencerelerini gözden geçirin: Kümülatif metrikleri MMP yapılandırması üzerinden kontrol edin (şu anda API üzerinden sunulmamaktadır)
  3. Limitleri ayarlayın: MMP çok sık tetikleniyorsa limitleri artırın; çok nadir tetikleniyorsa limitleri düşürün

Sık Karşılaşılan Sorunlar​

MMP Çok Sık Tetikleniyor​

Nedenler:

  • Limitlerin tipik gerçekleşme büyüklüklerine göre çok düşük olması
  • Olumsuz piyasa koşulları
  • Hızlı kotasyonun çok sayıda gerçekleşmeye yol açması

Çözümler:

  • qty_limit, delta_limit veya vega_limit değerlerini artırın
  • Pencerede daha fazla gerçekleşmeye izin vermek için interval_ms değerini artırın
  • Kotasyon sıklığını azaltın

MMP Tetiklenmiyor​

Nedenler:

  • Limitlerin çok yüksek olması
  • Emirlerde MMP'nin etkin olmaması (mmp_enabled=false)
  • Para birimi uyuşmazlığı (MMP yapılandırma para birimi != emrin dayanak varlığı)

Çözümler:

  • Limitleri düşürün
  • Emirlerde mmp_enabled=true olduğunu doğrulayın
  • MMP yapılandırma para biriminin emrin dayanak varlığıyla eşleştiğini doğrulayın

Beklenmedik İptaller​

Belirti: Emirler "Order canceled by MMP trigger" gerekçesiyle iptal ediliyor, ancak siz bunu beklemiyordunuz.

Neden: Aynı cüzdan+dayanak varlık için başka bir emir MMP'yi tetikledi.

Çözüm: Biri tetiklendiğinde, aynı dayanak varlık için MMP etkin tüm emirleri gözden geçirin.