Prevenção de auto-negociação

Última atualização: 1/04/2025

A Kraken restringe os clientes de preencherem as suas próprias ordens (sendo simultaneamente o criador e o tomador para a mesma transação). Isto evita a negociação de lavagem (wash trading), que é uma forma de manipulação de mercado em que um trader compra e vende simultaneamente o mesmo instrumento financeiro para criar atividade enganosa e artificial no mercado.

É possível colocar ordens de auto-correspondência com sucesso (seriam devolvidos IDs de ordem válidos), mas a ordem do tomador seria imediatamente cancelada. O fluxo de ordens específico que ocorre quando duas ordens da mesma conta corresponderiam é o seguinte:

  • Se duas ordens da mesma quantidade resultassem em autoexecução, a ordem do criador (limite) permaneceria no livro de ordens e a ordem do tomador (mercado) seria cancelada (independentemente do tamanho da ordem).

  • No caso de uma ordem poder ser parcialmente preenchida a partir do livro de ordens, o volume restante que resultaria numa auto-correspondência seria cancelado.

  • Se houver duas ordens em repouso, a primeira teria prioridade de tempo e a segunda poderia ser cancelada juntamente com qualquer volume restante da terceira ordem agressora.

Na gestão de contas, uma ordem que tenha sido cancelada devido à prevenção de auto-negociação mostraria um estado de "Cancelada" com o motivo "Não pode negociar consigo próprio":

Trading_CanceledCannotTradeWithSelf_09102021.png

O seguinte é um exemplo do fluxo de ordens e do estado da ordem resultante através da API REST da Kraken. As chamadas da API colocam uma ordem de compra limite no topo do livro de ordens XDGUSD, imediatamente seguida por uma ordem de venda a mercado para XDGUSD, resultando no cancelamento automático da ordem a mercado devido à restrição de auto-negociação:

  • $ ./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"}}}

Os detalhes completos dos campos/valores de informação da ordem estão disponíveis através da documentação QueryOrders e ClosedOrders.

Os separadores decimais e de milhares apresentados neste artigo podem diferir dos formatos exibidos nas nossas plataformas de negociação. Consulte o nosso artigo sobre como usamos pontos e vírgulas para mais informações.

Precisa de mais ajuda?