Как работает выполнение заказа

Я пытаюсь понять, как работает алгоритм выполнения заказа с технической точки зрения.

Допустим, я создал ордер на продажу 0,8 BTC и покупку 5400 XRP вместе с другими ордерами на продажу 0,35 BTC, 2,7 BTC и т. д. С другой стороны, есть некоторые трейдеры, которые продают другое количество XRP, кроме BTC.

Чтобы быть более конкретным, представьте:

trader1 хочет продать 0,8 BTC,

trader2 хочет продать 2,7 BTC...

Но нет трейдеров, готовых продать точно такое же количество XRP. Есть трейдер X, который хочет продать 7000 XRP, поэтому в этом случае у него может быть сделка с трейдером 1 и частичная сделка с трейдером 2. Однако так работают не все обменники, верно? Обычно все заказы обрабатываются как одна транзакция.

Так как же все эти ордера соответствуют торговле? Любой алгоритм или код на любом языке программирования был бы очень полезен. Спасибо!

Ответы (1)

«Так что в этом случае у него может быть сделка с трейдером 1 и частичная сделка с трейдером 2».

Это постоянно происходит на рынках. Большинство людей на самом деле не замечают, что это происходит, потому что размер сделок достаточно мал по сравнению с ликвидностью рынка, и они получают полное исполнение.

Если вы попытались продать огромную сумму, скажем, 1000000 XRP по определенной цене BTC, вы, скорее всего, не сразу получите полное заполнение.

Еще один способ получить 100%-ное исполнение — это когда какой-то другой трейдер размещает рыночный ордер, превышающий размер вашего лимитного ордера. В этом случае биржа «съест» ваш лимитный ордер и перейдет к следующему лучшему доступному ордеру в книге ордеров. Или может быть несколько рыночных ордеров, которые могут быть исполнены против вашего лимитного ордера, поэтому ваш лимитный ордер исполняется по мере того, как поступает все больше и больше рыночных ордеров.

Можно много читать о похожих темах, искать алгоритмы сопоставления заказов: https://stackoverflow.com/questions/13112062/what-are-the-order-matching-algorithms-most-commonly-used-by-electronic-financi