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.