La prevenzione Self Match
Kraken impedisce ai clienti di eseguire i propri ordini (ossia essere contemporaneamente maker e taker nello stesso trade). In questo modo evita il wash trading, una forma di manipolazione del mercato in cui un trader acquista e vende simultaneamente lo stesso strumento finanziario per creare un'attività ingannevole e artificiale sul mercato.
Tecnicamente è possibile piazzare un self matching order, ovvero un ordine di cui si è maker e taker, (verrebbero restituiti ID ordine validi), ma l'ordine del taker verrebbe immediatamente annullato. Il flusso di ordini specifico che si verifica quando due ordini dello stesso account coincidono è il seguente:
  • Se due ordini della stessa quantità comportano l'auto-esecuzione, l'ordine del maker (limit order) rimane nel libro ordini e l'ordine del taker (market order) viene cancellato (indipendentemente dalla dimensione dell'ordine).
  • Nel caso in cui un ordine possa essere parzialmente evaso dal libro ordini, il volume rimanente che risulterebbe in un self match verrebbe annullato.
  • Se ci sono due resting order, il primo ha la priorità temporale e il secondo può annullarsi insieme al volume residuo del terzo aggressing order.
Nella gestione dell'account, un ordine che è stato annullato a causa della prevenzione del trade con sé stessi mostrerà uno stato di "Annullato" con il motivo "Impossibile eseguire il trade con sé stessi":
Trading_CanceledCannotTradeWithSelf_09102021.png
Di seguito, è riportato un esempio del flusso dell'ordine e dello stato dell'ordine risultante tramite Kraken REST API. Le chiamate API piazzano un limit order di acquisto in cima al libro ordini di DOGEUSD, immediatamente seguito da un market order di vendita per DOGEUSD, con il risultato che il market order viene automaticamente annullato a causa della restrizione relativa al self match:
  • $ ./krakenapi AddOrder pair=xdgusd type=buy ordertype=limit price=0.002449 volume=5000 {"error":[],"result":{"descr":{"order":"buy 5000.00000000 XDGUSD @ limit 0.0024490"},"txid":["OQMVWA-LSE57-4LPF45"]}}
  • $ ./krakenapi AddOrder pair=xdgusd type=sell ordertype=market volume=5000 {"error":[],"result":{"descr":{"order":"sell 5000.00000000 XDGUSD @ market"},"txid":["OSLIEB-IQBNV-K7P5ET"]}}
  • $ ./krakenapi QueryOrders txid=OSLIEB-IQBNV-K7P5ET {"error":[],"result":{"OSLIEB-IQBNV-K7P5ET":{"refid":null,"userref":0,"status":"canceled","reason":"Cannot trade with self","opentm":1588683502.71,"closetm":1588683502.7117,"starttm":0,"expiretm":0,"descr":{"pair":"XDGUSD","type":"sell","ordertype":"market","price":"0","price2":"0","leverage":"none","order":"sell 5000.00000000 XDGUSD @ market","close":""},"vol":"5000.00000000","vol_exec":"0.00000000","cost":"0.000000000","fee":"0.000000000","price":"0.000000000","stopprice":"0.000000000","limitprice":"0.000000000","misc":"","oflags":"fciq"}}}
Le informazioni dettagliate sui campi e sui valori degli ordini possono essere trovate tramite la documentazione delle query QueryOrders e ClosedOrders.
I separatori dei decimali e delle migliaia mostrati in questo articolo possono differire dai formati visualizzati sulle nostre piattaforme di trading. Per ulteriori informazioni, consulta il nostro articolo su come utilizziamo i punti e le virgole.

Hai ancora bisogno di aiuto?