Предотвращение самоторговли

Последнее обновление: 1 апр. 2025 г.

Kraken ограничивает клиентов в исполнении собственных ордеров (одновременное выступление в роли мейкера и тейкера для одной и той же сделки). Это предотвращает вош-трейдинг, который является формой манипулирования рынком, при которой трейдер одновременно покупает и продает один и тот же финансовый инструмент для создания вводящей в заблуждение, искусственной активности на рынке.

Можно успешно разместить ордера на самосопоставление (будут возвращены действительные идентификаторы ордеров), но ордер тейкера будет немедленно отменен. Конкретный поток ордеров, который происходит при сопоставлении двух ордеров с одного и того же счета, выглядит следующим образом:

  • Если два ордера одинакового количества привели бы к самоисполнению, ордер мейкера (лимитный) остался бы в книге ордеров, а ордер тейкера (рыночный) был бы отменен (независимо от размера ордера).

  • В случае, если ордер может быть частично исполнен из книги ордеров, оставшийся объем, который привел бы к самосопоставлению, будет отменен.

  • Если есть два неисполненных ордера, первый будет иметь приоритет по времени, а второй может быть отменен вместе с любым оставшимся объемом от третьего агрессивного ордера.

В управлении счетом ордер, который был отменен из-за предотвращения самоторговли, будет иметь статус "Отменен" с причиной "Невозможно торговать с собой":

Trading_CanceledCannotTradeWithSelf_09102021.png

Ниже приведен пример потока ордеров и результирующего статуса ордера через Kraken REST API. Вызовы API размещают лимитный ордер на покупку в верхней части книги ордеров XDGUSD, сразу за которым следует рыночный ордер на продажу XDGUSD, что приводит к автоматической отмене рыночного ордера из-за ограничения на самоторговлю:

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

Полная информация о полях/значениях ордеров доступна в документации QueryOrders и ClosedOrders.

Десятичные и тысячные разделители, показанные в этой статье, могут отличаться от форматов, отображаемых на наших торговых платформах. Ознакомьтесь с нашей статьей о том, как мы используем точки и запятые для получения дополнительной информации.

Нужна дополнительная помощь?