SSS
Ana sayfa
Destek Merkezi
SSS
Kripto Türev İşlemleri
Vadeli İşlemler Sözleşmeleri
USDⓈ-M Vadeli İşlemler Sözleşmeleri
Kendi Kendine Alım Satımı Önleme (STP) Nedir?

Kendi Kendine Alım Satımı Önleme (STP) Nedir?

2023-08-29 07:03

Kendi Kendine Alım Satımı Önleme (STP) Nedir?

Kendi Kendine Alım Satımı Önleme (STP), kullanıcıların yanlışlıkla kendisine karşı alım satım yapmasını önlemek için alım satım platformları tarafından kullanılan bir mekanizmadır. Kendi kendine alım satım olarak bilinen bu durum, bir kullanıcının emirleri emir defterinde eşleştiğinde meydana gelir. STP, piyasa fiyatlarının manipüle edilmesini önlediği ve alım satım faaliyetlerinin piyasadaki gerçek ilgiyi doğru bir şekilde yansıtmasını sağladığı için adil ve şeffaf bir alım satım ortamının sürdürülmesinde özellikle önemlidir.
Binance'te Kendi Kendine Alım Satımı Önleme (STP), bir kullanıcının emirlerinin veya "tradeGroupId"lerinin kendininkilerle eşleşmesini engeller.

Kendi kendine alım satım nasıl tanımlanır?

Kendi kendine alım satım, şu iki senaryodan birinde gerçekleşebilir:
  • Emir, aynı hesaba karşı işlem görmektedir.
  • Emir, aynı "tradeGroupId"ye sahip bir hesaba karşı işlem görmektedir.

STP tetiklendiğinde ne olur?

Bir emrin kendi kendine alım satım oluşturması durumunda sistemin ne yapabileceği için dört olası mod vardır.
  • NONE: Bu mod, emri kendi kendine alım satımın önlenmesinden muaf tutar.Hesaplar veya "tradeGroupId"ler karşılaştırılmaz, hiçbir emir iptal edilmez ve alım satım gerçekleşir.
  • EXPIRE_TAKER: Bu mod, piyasa alıcı emrinin geri kalan tutarını derhal iptal ederek alım satımı engeller.
  • EXPIRE_MAKER: Bu mod, potansiyel piyasa yapıcı emrinin geri kalan tutarını derhal iptal ederek alım satımı engeller.
  • EXPIRE_BOTH: Bu mod, hem piyasa alıcı emrinin hem de potansiyel piyasa yapıcı emrinin geri kalan tutarını derhal iptal ederek alım satımı engeller.
STP, piyasa alıcı emrinin STP moduna bağlı olarak gerçekleşir. Bu nedenle, deftere girilen bir emrin STP modu geçerliliğini yitirir ve emir ileride işleme koyulurken tamamen göz ardı edilir.

Bir emir için STP modunu nasıl belirleyebilirim?

STP, yalnızca aşağıdaki API uç noktalarından, "selfTradePreventionMode" kullanarak belirlenebilir:
  • POST /fapi/v1/order
  • POST /fapi/v1/batchOrders

"tradeGroupId" nedir?

Aynı "tradeGroupId"ye sahip farklı hesaplar, aynı "alım satım grubu" bünyesinde addedilir. Bir alım satım grubunun üyeleri tarafından verilen emirlerde, piyasa alıcı emrinin STP moduna bağlı olarak STP devreye girebilir.
Bir kullanıcı, hesaplarının aynı "tradeGroupId" altında olup olmadığını API üzerinden GET fapi/v2/account (REST API) uç noktasından doğrulayabilir.
Değer -1 ise, o hesap için "tradeGroupId" belirlenmemiştir. Dolayısıyla da STP yalnızca aynı hesabın emirleri arasında gerçekleşebilir.

Hangi semboller STP'yi destekler?

GET fapi/v1/exchangeInfo içindeki tüm semboller STP'yi destekler.

Hangi emir türleri STP'yi destekler?

Aşağıdaki emir türleri, Geçerlilik Süresi (timeInForce) GTC/IOC/GTD olarak belirlendiğinde STP'yi destekler:
  • Limit emri
  • Piyasa emri
  • Kârı al emri
  • Stop piyasa emri
  • Kârı al piyasa emri
  • Takip eden zarar durdur piyasa emri
Geçerlilik Süreli (timeInForce) FOK ve GTX emirlerinde STP'nin devreye girmeyeceğini lütfen dikkate alınız.

Değiştirilen emirler STP'yi destekliyor mu?

Hayır. Değiştirilen emirler STP'yi desteklemez.

Bir emrin STP nedeniyle iptal edildiğini nasıl anlayabilirim?

Emir durumu "EXPIRED_IN_MATCH" olarak görüntülenir. "ORDER_TRADE_UPDATE" kullanıcı veri akışı olayında, emir STP nedeniyle iptal edilmişse X alanında "EXPIRED_IN_MATCH" görüntülenir.
{  "e":"ORDER_TRADE_UPDATE",      // Event Type  "E":1568879465651,             // Event Time  "T":1568879465650,             // Transaction Time  "o":{                                "s":"BTCUSDT",               // Symbol    "c":"TEST",                  // Client Order Id      // special client order id:      // starts with "autoclose-": liquidation order      // "adl_autoclose": ADL auto close order      // "settlement_autoclose-": settlement order for delisting or delivery    "S":"SELL",                  // Side    "o":"TRAILING_STOP_MARKET",  // Order Type    "f":"GTC",                   // Time in Force    "q":"0.001",                 // Original Quantity    "p":"0",                     // Original Price    "ap":"0",                    // Average Price    "sp":"7103.04",              // Stop Price. Please ignore with TRAILING_STOP_MARKET order    "x":"EXPIRED",               // Execution Type    "X":"EXPIRED_IN_MATCH",      // Order Status    "i":8886774,                 // Order Id    "l":"0",                     // Order Last Filled Quantity    "z":"0",                     // Order Filled Accumulated Quantity    "L":"0",                     // Last Filled Price    "N":"USDT",                  // Commission Asset, will not push if no commission    "n":"0",                     // Commission, will not push if no commission    "T":1568879465650,           // Order Trade Time    "t":0,                       // Trade Id    "b":"0",                     // Bids Notional    "a":"9.91",                  // Ask Notional    "m":false,                   // Is this trade the maker side?    "R":false,                   // Is this reduce only    "wt":"CONTRACT_PRICE",       // Stop Price Working Type    "ot":"TRAILING_STOP_MARKET", // Original Order Type    "ps":"LONG",                 // Position Side    "cp":false,                  // If Close-All, pushed with conditional order    "AP":"7476.89",              // Activation Price, only pushed with TRAILING_STOP_MARKET order    "cr":"5.0",                  // Callback Rate, only pushed with TRAILING_STOP_MARKET order    "pP": false,                 // ignore    "si": 0,                     // ignore    "ss": 0,                     // ignore    "rp":"0"                     // Realized Profit of the trade    "V": "NONE".                 // selfTradePreventionMode    "pm":"QUEUE"                 // price match type    "gtd":1768879465650          // good till date   }}

STP örnekleri:

Tüm bu örneklerde, tüm emirlerin aynı hesapta verildiğini varsayalım.
Maker Order: symbol=BTCUSDT side=BUY  type=LIMIT quantity=1 price=20000 selfTradePreventionMode=NONE Taker Order: symbol=BTCUSDT side=SELL type=LIMIT quantity=1 price=20000 selfTradePreventionMode=NONE
Sonuç: STP tetiklenmez ve emirler eşleşir.
Piyasa yapıcı emrinin emir durumu:
{    "orderId": 292864713,    "symbol": "BTCUSDT",    "status": "FILLED",    "clientOrderId": "43N239GaUaqshfG7825184",    "price": "20000",    "avgPrice": "20000",    "origQty": "1",    "executedQty": "1",    "cumQty": "1",    "cumQuote": "20000",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "BUY",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "NONE",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "updateTime": 1692849639460}
Piyasa alıcı emrinin emir durumu:
{    "orderId": 292864714,    "symbol": "BTCUSDT",    "status": "FILLED",    "clientOrderId": "43N239GaUaqshfG7825184",    "price": "20000",    "avgPrice": "20000",    "origQty": "1",    "executedQty": "1",    "cumQty": "1",    "cumQuote": "20000",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "SELL",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "NONE",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "updateTime": 1692849639460}
Maker Order 1: symbol=BTCUSDT side=BUY  type=LIMIT quantity=1 price=20002 selfTradePreventionMode=NONE Maker Order 2: symbol=BTCUSDT side=BUY  type=LIMIT quantity=1 price=20001 selfTradePreventionMode=NONE Taker Order 1: symbol=BTCUSDT side=SELL type=LIMIT quantity=1 price=20000 selfTradePreventionMode=EXPIRE_MAKER
Sonuç: Defterde bulunan emirler STP nedeniyle iptal edilir ve piyasa yapıcı emri deftere girilir.
Piyasa yapıcı emri 1:
{    "orderId": 292864710,    "symbol": "BTCUSDT",    "status": "FILLED",    "clientOrderId": "testMaker1",    "price": "20002",    "avgPrice": "20002",    "origQty": "1",    "executedQty": "1",    "cumQuote": "20002",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "BUY",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "NONE",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "time": 1692849639460,    "updateTime": 1692849639460}
Piyasa yapıcı emri 2:
{    "orderId": 292864711,    "symbol": "BTCUSDT",    "status": "EXPIRED_IN_MATCH",    "clientOrderId": "testMaker2",    "price": "20001",    "avgPrice": "0.0000",    "origQty": "1",    "executedQty": "0",    "cumQuote": "0",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "BUY",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "NONE",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "time": 1692849639460,    "updateTime": 1692849639460}
Piyasa alıcı emri çıktısı:
{    "orderId": 292864712,    "symbol": "BTCUSDT",    "status": "PARTIALLY_FILLED",    "clientOrderId": "testTaker1",    "price": "20000",    "avgPrice": "20002",    "origQty": "2",    "executedQty": "1",    "cumQuote": "20002",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "SELL",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "EXPIRE_MAKER",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "time": 1692849639460,    "updateTime": 1692849639460}
Maker Order 1: symbol=BTCUSDT side=BUY type=LIMIT quantity=1 price=20002 selfTradePreventionMode=NONE Maker Order 2: symbol=BTCUSDT side=BUY type=LIMIT quantity=1 price=20001 selfTradePreventionMode=NONE Taker Order 1: symbol=BTCUSDT side=SELL type=LIMIT quantity=2 price=20000     selfTradePreventionMode=EXPIRE_TAKER
Sonuç: Daha önce defterde bulunan emirler defterde kalırken piyasa alıcı emri ise iptal edilir.
Piyasa yapıcı emri 1:
{    "orderId": 292864710,    "symbol": "BTCUSDT",    "status": "NEW",    "clientOrderId": "testMaker1",    "price": "20002",    "avgPrice": "0.0000",    "origQty": "1",    "executedQty": "0",    "cumQuote": "0",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "BUY",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "NONE",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "time": 1692849639460,    "updateTime": 1692849639460}
Piyasa yapıcı emri 2:
{    "orderId": 292864711,    "symbol": "BTCUSDT",    "status": "NEW",    "clientOrderId": "testMaker2",    "price": "20001",    "avgPrice": "0.0000",    "origQty": "1",    "executedQty": "0",    "cumQuote": "0",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "BUY",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "NONE",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "time": 1692849639460,    "updateTime": 1692849639460}
Piyasa alıcı emri çıktısı:
{    "orderId": 292864712,    "symbol": "BTCUSDT",    "status": "EXPIRED_IN_MATCH",    "clientOrderId": "testTaker1",    "price": "20000",    "avgPrice": "0.0000",    "origQty": "3",    "executedQty": "0",    "cumQuote": "0",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "SELL",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "EXPIRE_TAKER",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "time": 1692849639460,    "updateTime": 1692849639460}
Maker Order: symbol=BTCUSDT side=BUY  type=LIMIT quantity=1 price=20002 selfTradePreventionMode=NONETaker Order: symbol=BTCUSDT side=SELL type=LIMIT quantity=3 price=20000 selfTradePreventionMode=EXPIRE_BOTH
Sonuç: Her iki emir de iptal edilir.
Piyasa yapıcı emri:
{    "orderId": 292864710,    "symbol": "BTCUSDT",    "status": "EXPIRED_IN_MATCH",    "clientOrderId": "testMaker1",    "price": "20002",    "avgPrice": "0.0000",    "origQty": "1",    "executedQty": "0",    "cumQuote": "0",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "BUY",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "NONE",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "time": 1692849639460,    "updateTime": 1692849639460}
Piyasa alıcı emri:
{    "orderId": 292864712,    "symbol": "BTCUSDT",    "status": "EXPIRED_IN_MATCH",    "clientOrderId": "testTaker1",    "price": "20000",    "avgPrice": "0.0000",    "origQty": "3",    "executedQty": "0",    "cumQuote": "0",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "SELL",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "EXPIRE_BOTH",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "time": 1692849639460,    "updateTime": 1692849639460}
Maker Order: symbol=BTCUSDT side=BUY  type=LIMIT quantity=1 price=20002 selfTradePreventionMode=EXPIRE_MAKER Taker Order: symbol=BTCUSDT side=SELL type=LIMIT quantity=1 price=20000 selfTradePreventionMode=EXPIRE_TAKER
Sonuç: Piyasa alıcı emrinin STP modu tetiklenir ve böylece piyasa alıcı emri iptal edilir.
Piyasa yapıcı emri:
{    "orderId": 292864710,    "symbol": "BTCUSDT",    "status": "NEW",    "clientOrderId": "testMaker1",    "price": "20002",    "avgPrice": "0.0000",    "origQty": "1",    "executedQty": "0",    "cumQuote": "0",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "BUY",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "EXPIRE_MAKER",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "time": 1692849639460,    "updateTime": 1692849639460}
Piyasa alıcı emri:
{    "orderId": 292864712,    "symbol": "BTCUSDT",    "status": "EXPIRED_IN_MATCH",    "clientOrderId": "testTaker1",    "price": "20000",    "avgPrice": "0.0000",    "origQty": "1",    "executedQty": "0",    "cumQuote": "0",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "SELL",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "EXPIRE_TAKER",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "time": 1692849639460,    "updateTime": 1692849639460}
Maker Order: symbol=BTCUSDT side=BUY  type=LIMIT  quantity=1 price=20002  selfTradePreventionMode=NONE Taker Order: symbol=BTCUSDT side=SELL type=MARKET quantity=3 selfTradePreventionMode=EXPIRE_MAKER
Sonuç: Mevcut emir, STP nedeniyle "EXPIRED_IN_MATCH" durumu ile iptal edilir.Yeni emir ise emir defterindeki düşük likidite nedeniyle durumu "EXPIRED" olarak gösterilerek iptal edilir.
Piyasa yapıcı emri:
{    "orderId": 292864710,    "symbol": "BTCUSDT",    "status": "EXPIRED_IN_MATCH",    "clientOrderId": "testMaker1",    "price": "20002",    "avgPrice": "0.0000",    "origQty": "1",    "executedQty": "0",    "cumQuote": "0",    "timeInForce": "GTC",    "type": "LIMIT",    "reduceOnly": false,    "closePosition": false,    "side": "BUY",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "EXPIRE_MAKER",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "time": 1692849639460,    "updateTime": 1692849639460}
Piyasa alıcı emri:
{    "orderId": 292864712,    "symbol": "BTCUSDT",    "status": "EXPIRED",    "clientOrderId": "testTaker1",    "price": "20000",    "avgPrice": "0.0000",    "origQty": "3",    "executedQty": "0",    "cumQuote": "0",    "timeInForce": "GTC",    "type": "MARKET",    "reduceOnly": false,    "closePosition": false,    "side": "SELL",    "positionSide": "BOTH",    "stopPrice": "0",    "workingType": "CONTRACT_PRICE",    "priceMatch": "NONE",    "selfTradePreventionMode": "EXPIRED",    "goodTillDate": 0,    "priceProtect": false,    "origType": "LIMIT",    "time": 1692849639460,    "updateTime": 1692849639460}