Skip to content
All library documents

Reconstructing a Cross Rate from Two Order Books

Article Quant Q&A · Author: apt45

Summary

The document poses a practical question about deriving an executable B/C price from two markets, A/B and A/C, on the same exchange. The proposed route is to buy A with B and then sell A for C, with the achievable price depending on the desired quantity of C. This makes the problem one of combining depth across both books rather than multiplying only their best quotes.

It specifies simplifying assumptions: matching minimum order sizes in A, no fees, synchronized order book updates, and zero execution delay. These assumptions isolate the price and quantity mechanics of the two-step conversion. The text does not provide a reconstruction algorithm or worked example; it asks whether an efficient method exists. Practical use would therefore require an answer that handles cumulative depth, trading direction, and quantity constraints, while accounting for real-world fees, latency, and asynchronous updates beyond the stated setup.

Key ideas

  • A synthetic B/C market can be formed by converting B to A and then A to C.
  • The best achievable price depends on the amount of C sought and the depth in both order books.
  • The question assumes matching minimum sizes in A, no fees, synchronized updates, and instantaneous trades.
  • The document raises the reconstruction problem but does not supply a solution.

Tags

Full text
# Combining two orderbooks


# Combining two orderbooks












Consider two different pairs of currencies traded in the same exchange. We will call these pairs `A/B` and `A/C`.

Each market comes with its own orderbook and minimum order size. Let's make some assumptions:

- The minimum order size for the currency `A` is the same in both markets, e.g. we can trade at lease 0.1A.

- There are no trading fees

- The orderbooks get updated at the same time.

- There is no latency

I would like to know at which best price I can buy the currency `C` by exchanging `B` for `A` and then selling `A` for `C`, assuming that all the transactions happen instantaneously, i.e. there is no delay between the two swaps.

Of course, the best price will depend on the amount of currency `C` I want to buy, so I was thinking of first reconstructing an orderbook for the pair `B/C` starting from the other two orderbooks. Any method I am trying to think of is very complicated and I was wondering whether there is an efficient way to combine two orderbooks.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.