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

Deneysel Combo API

Combo'lar, sabit oranlı opsiyon bacaklarını tek bir emir olarak işlem görür. Bir gerçekleşme, gerekli tüm bacakları birlikte yürütür. Pozisyonlarınız ayrı ayrı opsiyonlar olarak kalır.

Deneysel sözleşme

Tüm /experimental uç noktaları ve açıkça deneysel olarak belirtilen WebSocket mesajları kararsızdır. Uyumluluğu bozan değişiklikler, alanların veya uç noktaların kaldırılması ya da yeniden adlandırılması, alan türlerinin değiştirilmesi ve istek veya yanıt davranışının değiştirilmesi dahil olmak üzere bir gün (24 saat) önceden bildirimle yürürlüğe girebilir. Değişiklikler API değişiklik günlüğünde duyurulur. İstemciler bu bildirimleri takip etmeli ve belirtilen yürürlük zamanından önce güncelleme yapmalıdır. Mevcut deneysel olmayan API sözleşmeleri bu politikanın kapsamı dışındadır.

Kullanılabilirlik ortamınıza bağlıdır. Bu sayfa deneysel arayüzü açıklar; ana ağ üretim kullanılabilirliğini veya işlem uygulamasında yeni bir arayüzü duyurmaz.

Ortak bağlantı ve imzalama kuralları için REST referansını, kimlik doğrulama kılavuzunu ve WebSocket kılavuzunu kullanın.

Bir combo keşfedin​

İstekSonuç
GET /experimental/combosVade sonu gelmemiş tanımlardan oluşan sınırlı bir sayfa, isteğe bağlı olarak underlying ile filtrelenir
GET /experimental/combos/{symbol}Vade sonu gelmemiş tek bir tanım ve çözümlenmiş opsiyon bacakları

İlk emirle oluşturma: combo henüz keşfedilebilir değilse, POST /order ile kanonik bir combo_definition gönderin. Kabul edilen ilk emir, anında gerçekleşen bir emir de dahil olmak üzere, tanımını yayımlar. Reddedilen bir emir hiçbir şey yayımlamaz. Ayrı bir oluşturma uç noktası yoktur.

Keşif ömrü: bir tanım, bekleyen emri olmasa bile ilk bacağının vade sonuna kadar keşfedilebilir kalır.

Sayfalama: yanıtlar combos ve next_cursor içerir. limit değerini 1–1.000 arasında ayarlayın (varsayılan 100). Döndürülen imleci bir sonraki istekte aynı underlying filtresini koruyarak cursor olarak iletin. Null bir imleç, başka satır gözlemlenmediği anlamına gelir. Geçersiz limitler veya imleçler HTTP 400 döndürür.

GET /experimental/combos?underlying=BTC&limit=100
GET /experimental/combos?underlying=BTC&limit=100&cursor=<next_cursor>

Sayfa sıralaması: önce en erken bacak vade sonu, ardından combo ID. İmleçleri opak olarak değerlendirin. Her sayfa mevcut keşif durumunu yansıtır; tanımların vadesi istekler arasında dolabilir veya yeni tanımlar eklenebilir. Kaydedilmiş bir imleçten önce sıralanan yeni oluşturulmuş tanımları yakalamak için oluşturma güncellemelerini kullanın veya keşfi yeniden başlatın.

Kimlik: bir sembol, COMBO- ve ardından gelen 64 küçük harfli onaltılık karakterden oluşur. İçeriğe bağlı ID'si, bacak enstrümanlarını ve işaretli tam sayı oranlarını sabitler. Mevcut bir sembolün anlamı değişemez.

İlk kapsam: aynı dayanak varlığa sahip ikiden sekize kadar farklı opsiyon bacağı. Her bacak listelenmiş, vadesi dolmamış ve talep edilen yürütme rotası için uygun olmalıdır.

Yön, fiyat ve büyüklüğü anlayın​

+1 A, -1 B oranlarına sahip kanonik bir tanım için:

  • Bir paket alım: bir A alın ve bir B satın.
  • Bir paket satım: bir A satın ve bir B alın.
  • Net fiyat: paket başına kote edilen price(A) - price(B).
  • Limit: bir alım, limitine eşit veya altındaki net fiyatı kabul eder; bir satım, limitine eşit veya üstündeki net fiyatı kabul eder.

Negatif ve sıfır fiyatlar geçerlidir. A 8′danveB8'dan ve B 10'dan işlem görüyorsa, kanonik net fiyat -2 olur. Bu paketi almak, ücretlerden önce 2alacaksag˘lar.Satmakiseu¨cretlerdeno¨nce2 alacak sağlar. Satmak ise ücretlerden önce 2 ödeme gerektirir. Her gerçek opsiyon bacağının yürütme fiyatı yine pozitiftir.

Emir artışları: paket büyüklüğü, 0.000001 artışlı insan tarafından okunabilir kontrat birimlerini kullanır; net limit fiyatı 0.000001 artış kullanır. Yürütülen her bacak ayrıca kendi miktar ve fiyat artışlarını da karşılamalıdır. Kısmi bir gerçekleşme tüm oranları korur ve izin verilen tam bir paket miktarını gerçekleştirir.

Ücretler: mevcut bacak bazlı oranlar ve uygunluk kuralları geçerlidir, paket indirimi yoktur. Gelen emir, gönderilen builder atfıyla birlikte kendi bacaklarında taker'dır. Outright-through-combo rotasında combo ana emri, destekleyici outright maker'lara karşı ek destekleyici bacaklarda normal taker ücret atfını alır; bu bacakların builder atfı yoktur. Bekleyen combo rezervasyonları, brüt bacak tutarları üzerinden olası taker ücretlerini ihtiyatlı biçimde içerir. Mevcut Standart Teminat yürütmesi, defter ve RFQ gerçekleşmeleri için sıfır işlem ücreti gerektirir; bir SM katılımcısını içeren rota, sıfırdan farklı işlem ücretleriyle yürütülemez.

Teminat: borsa, her hesap için ortaya çıkan opsiyon pozisyonlarını ve kalan emir maruziyetini kontrol eder. Bir combo, cüzdanlar arasında teminatı birleştirmez veya belirli bir teminat azalması vaat etmez. Hesap seviyeniz yalnızca karşılıklı (covered) opsiyon satışlarına izin veriyorsa, bekleyen outright emirler ve her combo ana emrinin satım bacakları aynı gerçekleşmiş long envanteri paylaşır. Ayrı ana emirler ve bölünmüş gerçekleşmeler bu envanteri ayrı ayrı yeniden kullanamaz; gerçekleşmemiş alım bacakları karşılık sağlamaz.

Emir verin​

Combo sembolüyle mevcut imzalı POST /order isteğini kullanın. Emir imzalama alanları değişmemiştir. Gönderdiğiniz symbol, size ve price dizelerini, negatif bir fiyatın eksi işareti dahil olmak üzere, tam olarak imzalayın. Yeni bir combo için, aşağıda açıklandığı gibi kanonik combo_definition ekleyin. İmzalı, içeriğe bağlı sembol bu tanıma bağlanır; uyuşmayan bir tanım reddedilir. Bilinen combo'larda bu alan atlanabilir.

{
"wallet": "<your wallet>",
"symbol": "<discovered COMBO symbol>",
"side": "Buy",
"size": "1",
"price": "-2",
"tif": "gtc",
"route": "best_execution",
"client_id": "spread-001",
"reduce_only": false,
"mmp_enabled": false,
"nonce": 1,
"signature": "<signed order>"
}

Yer tutucuları ve nonce değerini kendi gerçek değerlerinizle değiştirin. Fiyat bir örnektir, güncel bir piyasa kotasyonu değildir.

AyarDavranış
route: "book_only"Mevcut doğrudan ve desteklenen implied likiditeyle eşleştirir, ardından geçerlilik süresini uygular
route: "best_execution"Tam paket fiyat iyileştirme açık artırmasını değerlendirir, uygun olduğunda defter yürütmesine geri döner
route: "rfq_only"/order üzerinde reddedilir
tif: "gtc"Gerçekleşmeyen paket kalanını bekletir
tif: "ioc"Gerçekleşmeyen kalanı iptal eder
tif: "fok"Talep edilen paket miktarının tamamını yürütür veya hiçbir şey yürütmez

Fiyat iyileştirme, tam paketin işaretli net fiyatını yürütülebilir tam büyüklükteki bir defter referansıyla karşılaştırır. Kotasyon sağlayıcılar her bacağı tam olarak talep edilen oran ve miktarda sunmalıdır. Bir kotasyonu yalnızca ilk bacağına göre sıralamak yetersizdir. Hem doğrudan combo likiditesi hem de desteklenen implied rotalar referansa katkıda bulunabilir. Kullanılamayan veya eksik bir referans, emri defter yürütmesine gönderir.

Kotasyon uygunluğu: mevcut RFQ ücret kuralları da geçerlidir. Katılımcılardan biri Standart Teminat kullanıyorsa, RFQ yürütmesi sıfır işlem ücreti gerektirir. Ücret, teminat veya tam tahsis kontrollerinden geçemeyen bir kotasyon, yürütmeyi mevcut defter yolunda bırakır; bacaklarını kısmen yürütmez.

Implied eşleştirme, bir combo'yu onu destekleyen outright opsiyon likiditesiyle birleştirebilir. Örneğin, outright bir A emri, bir A-eksi-B combo'su ve B likiditesiyle atomik olarak işlem görebilir. Yalnızca A işlemi yapan bir müşteri B pozisyonu almaz.

Implied aramaların kaynak limitleri vardır. Outright bir emir bu limitlere ulaşırsa, destekleyici likiditesi kullanılamaz hale gelirse veya isteğe bağlı rota outright emir artışlarını temsil edemezse, emir yine de olağan emir kuralları altında doğrudan opsiyon defterine karşı işlem görebilir. Combo desteği, kabul edilen outright miktar veya fiyat artışlarını değiştirmez. Hedef opsiyon defter işlemine uygun kalmalıdır. Arama limitlerini aşan bir combo emri, kısmi tahsis yapılmadan reddedilir.

Mevcut kısıtlamalar: yerel combo emirleri mmp_enabled: false gerektirir. Korunan outright katılımcılar MMP'yi korur. Eşiği tetikleyen bir paket bacaklarını tamamlar ve daha fazla eşleştirmeyi durdurur; eksik bir FOK veya atomik değiştirme, adayın tamamını geri alır. Reduce-only emirler fiyat iyileştirme açık artırmasını atlar ve defter kabulünü kullanır; burada ortaya çıkan her bacak reduce-only kontrollerini karşılamalıdır. Bekleyen bir combo'yu mevcut iptal uç noktalarını kullanarak ana emir ID'si veya istemci emir ID'si ile iptal edin.

Değiştirme: PUT /order, aynı combo tanımı içindeki bir ana emri atomik olarak değiştirebilir. Reddedilen bir değiştirme, öncülünü olduğu gibi bırakır. Toplu değiştirmedeki yerel girişler de ana emir başına bir atomik komut kullanır; toplu işlem, tek bir ya hep ya hiç işlemi değildir. Bir combo ile outright arasında veya farklı combo tanımları arasında değiştirme reddedilir.

Kendi kendine işlem önleme: eşleştirme, bir rota bir hesabı kendisiyle işlem yaptıracaksa öncesinde durur ve bekleyen maker emrini iptal eder. Daha önce tamamlanmış gerçekleşmeler kalır, gelen kalan ise iptal edilir. Daha önce gerçekleşme yoksa gelen emir reddedilir. FOK emirleri ve başarısız atomik değiştirmeler, geçici maker iptallerinin geri alınması dahil olmak üzere ya hep ya hiç davranışlarını korur.

İlk emrinizde bir combo tanımlayın​

İmzalamadan önce kanonikleştirin: yinelenen enstrüman ID'lerini birleştirin, sıfır oranları kaldırın, ID'leri sayısal olarak sıralayın, oranları en büyük ortak bölenlerine bölün ve ilk oranı pozitif yapın. Normalleştirme oranları tersine çevirirse, amaçlanan emir yönünü tersine çevirin ve net fiyatın işaretini değiştirin. Oranları bir çarpana bölerse, paket büyüklüğünü bu çarpanla çarpın ve net fiyatı bu çarpana bölün.

Birinci sürüm ID'si, aşağıdaki birleştirmenin Keccak-256 değeridir:

UTF-8("hypercall:combo-definition\0")
|| version as unsigned 16-bit big-endian (1)
|| leg count as unsigned 16-bit big-endian
|| each sorted leg:
instrument ID as 32 big-endian bytes
ratio as signed 64-bit two's-complement big-endian

Enstrüman ID'leri, UTF-8 "instrument" ve ardından tam kanonik opsiyon sembolünün Keccak-256 değeridir. Yayımlanan combo ID'si, 0x artı 64 küçük harfli onaltılık karakter olarak kodlanmış tam özettir. Combo sembolü, COMBO- sonrasında aynı onaltılık basamakları kullanır.

combo_definition alanını olağan imzalı POST /order gövdesine ekleyin. Tanım version, id ve legs içerir; her bacak instrument_id ve ratio içerir. ID'leri 0x artı 64 küçük harfli onaltılık basamak olarak, oranları ise "1" veya "-1" gibi kanonik işaretli ondalık dizeler olarak kodlayın. Oranlar için JSON sayıları, başta artı işaretleri ve baştaki sıfırlar reddedilir.

{
"combo_definition": {
"version": 1,
"id": "<canonical content hash as 0x plus 64 hex digits>",
"legs": [
{"instrument_id": "<first canonical instrument ID>", "ratio": "1"},
{"instrument_id": "<second canonical instrument ID>", "ratio": "-1"}
]
}
}

Bu parça, yukarıdaki tam emir örneğine eklenir. Yer tutucuları gerçek ID'lerle değiştirin ve karşılık gelen COMBO- sembolünü kullanın. Ek bir tanım imzası veya ayrı bir yayın nonce'u yoktur. Servis, kanonik içeriği ve kimliğini imzalı sembole karşı doğrular; outright emirler combo_definition alanını içermemelidir.

Kabul ve keşif: kabul edilen her combo emri, tanımını kalıcı emir kaydında tutar ve katalog girişinin varlığını idempotent olarak güvence altına alır. Sonraki bir emir ilk oluşturma kaydının üzerine yazmaz. Anında gerçekleşen bir emir de keşif verisi oluşturur; reddedilen emirler oluşturmaz. Keşif, işlenmiş verilerden yansıtıldığı için emir onayının gerisinde kalabilir. Aynı tanımın sonraki bir emirde yeniden gönderilmesi, ilk katalog girişi henüz yetişmemişken bile desteklenir.

Emirleri ve yürütmeleri okuyun​

İstekAmaç
GET /experimental/ordersCombo ana emirleri dahil, açık enstrüman sınıflandırmasıyla emirleri okur
GET /experimental/tradesVarsayılan olarak gerçek bacak işlemlerini veya view=packages&symbol=<COMBO symbol> ile tek bir combo için paket özetlerini okur
GET /experimental/fillsVarsayılan olarak cüzdan gerçekleşmelerini veya view=packages ile cüzdan paket özetlerini okur

Desteklenen filtreler ve imleçler için REST referansını kullanın. Paket görünümleri offset yerine limit (1 ile 1.000 arası, varsayılan 100) ve before_execution_id ile sayfalanır: sonraki sayfayı almak için döndürülen next_before_execution_id değerini iletin. Paket işlemleri kanonik bir COMBO- symbol gerektirir; paket gerçekleşmeleri wallet ve isteğe bağlı bir symbol alır. Paket özetleri gruplama kayıtlarıdır: yürütme ID'leri ve bacak işlem ID'leri, bunları gerçek opsiyon yürütmeleriyle eşleştirmenizi sağlar. Hesap toplamlarını hesaplarken paket miktarını, primini veya ücretlerini bileşen yürütmelere eklemeyin.

Tanımlayıcı hassasiyeti: deneysel emir ID'leri, paket yürütme ID'leri, bileşen işlem/emir ID'leri, ana emir ID'leri ve paket sayfalama imleçleri ondalık dizelerdir. Bunları istemcinizde dize olarak tutun; JavaScript sayılarına dönüştürmek hassasiyet kaybına yol açabilir. Eski view=legs yanıtları mevcut gösterimlerini korur.

Uyumluluk: eski enstrüman keşfi ve emir görünümleri outright sözleşmelerini korur. Gerçek opsiyon bacağı yürütmeleri eski işlem/gerçekleşme akışlarında görünmeye devam eder ve pozisyonlar opsiyon pozisyonları olarak kalır. Bir combo'nun ana emri, bağımsız olarak bekleyen bacak emirlerinin bir koleksiyonu değildir.

Açıkça abone olun​

Deneysel özel kanallar, mevcut WebSocket kimlik doğrulama adımını ve açık bir aboneliği gerektirir. Yalnızca kimliği doğrulanmış cüzdanın ana kayıtlarını yayımlarlar.

KanalMesajHedef kitle
experimental_order_updatesAna ID, sembol, enstrüman türü (option, perp veya combo), durum, miktar, gerçekleşen miktar ve net fiyat içeren ExperimentalOrderUpdateKimliği doğrulanmış cüzdan
experimental_combo_tradesYürütme ID'si, sembol, paket miktarı, net fiyat ve bacak işlem ID'lerini içeren ComboTradeHerkese açık
experimental_combo_fillsCüzdanın ana emir ID'si, yönü ve paket yürütmesini içeren ComboFillKimliği doğrulanmış cüzdan
{"type":"Subscribe","channel":"experimental_order_updates"}

ExperimentalOrderUpdate.status, OrderUpdate içindeki büyük harfli değerleri değil, Acked, Open, PartiallyFilled, Filled, Canceled veya Rejected değerlerini kullanır. ID'ler ve miktarlar dizedir.

Keşfedilen bir combo sembolünü kullanarak mevcut defter kanalına abone olun:

{"type":"Subscribe","channel":"orderbook","symbols":["<discovered COMBO symbol>"]}

Piyasa keşif güncellemeleri aynı değişmez tanımı tekrarlayabilir; combo ID'sine göre tekilleştirin. Bu güncellemeler market_updates üzerinde action: "ComboCreated", combo sembolü, ID, kanonik bacaklar ve zaman damgasıyla MarketUpdate kullanır. İstemcinizde mutabakat yaparken keşfi, ana emir durumunu, paket yürütme özetlerini ve gerçek bacak gerçekleşmelerini ayrı kayıtlar olarak ele alın.