Triangular Arbitrage with Bid Ask Quotes

In the first part of Triangular Arbitrage with Bid Ask Quotes a method for computing the synthetic bid and ask prices for EURUSD was shown. In this article, new examples showing how to compute synthetic bid and ask prices for GBPUSD and EURGBP will be shown. Recall the following bid ask prices:

EURUSD bid 1.38705 ask 1.38710
GBPUSD bid 1.59440 ask 1.59455
EURGBP bid 0.86975 ask 0.86990

Four Bid Ask Rules

Four general rules for bid and ask prices can be stated:

BN The numerator (GBP) of a GBPUSD bid price represents a long position in GBP.
BD The denominator (USD) of a GBPUSD bid price represents a short position in USD.
AN The numerator (GBP) of a GBPUSD ask price represents a short position in GBP.
AD The denominator (USD) of a GBPUSD ask price represents a long position in USD.
(BN = Bid price numerator, BD = bid price denominator)
(AN = ask price numerator, AD = ask price denominator)

Example2: GBPUSD synthetic bid ask prices

To compute the synthetic GBPUSD bid price, recall that via rule BN (bid numerator) that a long position is taken in GBP and via rule BD (bid denominator) a short position is taken in USD. When working out the synthetic, the following equation comes into play:

GBPUSD = (1/EURGBP) * EURUSD

Note that the price of EURGBP must be inverted by dividing 1 by the price of EURGBP (for JPY denominated pairs, divide 100 by the price to invert the quote). This inversion puts GBP in the numerator, thus matching the GBP in GBPUSD's numerator. The denominator of EURUSD matches the USD in GBPUSD's denominator so no inversion is necessary. The same rules as applied previously also apply now.

When computing the bid price of GBPUSD's synthetic, first the correct rule must be ascertained. GBP long is desired and USD short. GBP is in the denominator of EURGBP so the denominator rules (AD, BD) will need to be applied. according to rule BD the bid price of the denominating currency (GBP) is short. Rule AD states that the denominator of the ask price represents a long GBP position This meets the goal of long GBP. Thus the ask price of EURGBP must be used for a long GBP position. Applying rule BD to EURUSD gives a short USD position, just as is needed to finish the synthetic GBPUSD bid at long GBP and short USD.

GBPUSD bid (red) vs. synthetic ask (green)
GBPUSD ask (red) vs. synthetic bid (green)

Thus, synthetic GBPUSD bid = (1/EURGBP ask) * EURUSD bid = (1.0/0.86990) * 1.38705 = 1.59449 (rounded). Compared to the real GBPUSD bid of 1.59440 it is clear that the synthetic price is 0.9 pips higher than the GBPUSD bid price. This slight improvement opens the way for transactions in the synthetic to replace transactions in GBPUSD if conditions such as interest rates earned / paid are favorable, and transaction costs are taken into consideration. However there is still no arbitrage opportunity because the synthetic bid is still less than the actual ask price of GBPUSD.

To compute the GBPUSD synthetic ask, recall that the real ask price represents a short GBP position and a long USD position. Again, GBP is in the denominator of EURGBP so the denominating rules must be applied. Applying rule AD to EURGBP indicates a long position in GBP. Again, this is opposite what we are looking for! Rule BD states that the denominator represents a short position, so the bid price will be used for EURGBP. USD is in the denominator of EURUSD so by applying rule AD we find that USD is long, a match!

Thus, to compute the ask price of GBPUSD's synthetic, bid prices will be used for EURGBP to get GBP short, and ask prices will be used for EURUSD to get USD long. Synthetic GBPUSD ask price = (1/EURGBP) bid * EURUSD ask = (1.0/0.86975) * 1.38710 = 1.59492 (rounded). Comparing synthetic GBPUSD ask price to actual GBPUSD ask price it is clear that the actual ask price of 1.59455 is better than the synthetic ask price of 1.59492 indicating no inefficiency or opportunity in executing via the GBPUSD synthetic ask price over the actual GBPUSD ask price.

The pictures above show GBPUSD bid and ask prices compared against synthetic ask and bid prices respectfully. Opportunities exist when the green line exceeds the red line. However, as can be seen from the pictures, these opportunities are transitory and very small in magnitude.

Example 3: EURGBP synthetic bid and ask prices

EURUSD bid 1.38705 ask 1.38710
GBPUSD bid 1.59440 ask 1.59455
EURGBP bid 0.86975 ask 0.86990

The equation to compute the synthetic price for EURGBP is as follows:

EURGBP = EURUSD * (1/GBPUSD)

Turning our attention to calculate the bid price for EURGBP, recall that the bid price of EURGBP represents EUR long and GBP short. To compute the synthetic bid price for the numerator EUR (long), EURUSD bid prices may be used via rule BN.To compute GBP short, recall that GBP is in the numerator of GBPUSD. According to rule AN the ask price of the numerator must be used to get GBP short.

Four Bid Ask Rules

Four general rules for bid and ask prices can be stated:

BN The numerator (EUR) of a EURGBP bid price represents a long position in EUR.
BD The denominator (GBP) of a EURGBP bid price represents a short position in GBP.
AN The numerator (EUR) of a EURGBP ask price represents a short position in EUR.
AD The denominator (GBP) of a EURGBP ask price represents a long position in GBP.
(BN = Bid price numerator, BD = bid price denominator)
(AN = ask price numerator, AD = ask price denominator)

Thus the calculation of the EURGBP synthetic bid = bid EURUSD * (1/GBPUSD) ask = 1.38705 * (1/1.59455) = synthetic EG bid of 0.86987 (rounded). Compare the synthetic bid to the actual bid to see improvement of approximately 1.2 pips over the actual EURGBP bid price. The synthetic bid price doesn't exceed the actual ask price, and so in spite of the synthetic offering a better deal on the bid than the actual, no arbitrage opportunity was found.

The synthetic ask for EURGBP can likewise be computed as ask EURUSD * (1/GBPUSD) bid = 1.38710 * (1/1.59440) = 0.86998 (rounded). Compared to the actual EURGBP ask it is clear that the market is efficient and that the synthetic ask price offers no opportunity either for ask price improvement or for arbitrage.

Conclusion

Calculating bid and ask prices for synthetic pairs is fairly straightforward. Keep in mind that an underlying pair's bid consists of a long position in the numerator of the underlying, and a short position in the denominator of the underlying. Then simply match up two related pairs that contain the the underlying currencies combined with a third currency for the two synthetics, such as underlying EURAUD with EURUSD and AUDUSD where USD is the third currency. EURAUD synthetic could also be formed using GBP as the third currency such as EURGBP and GBPAUD.

Then just determine which currency is long for the underlying and match up a synthetic pair's bid or ask price to match that long position. Do the same for the short underlying currency match up either the synthetic pair's bid or ask. The same rules apply to ask prices but in reverse. It may be useful to write out the four bid ask rules for your underlying to make this process easier.

I hope you enjoyed reading this article. To brush up on the basics of triangular arbitrage, take a look at Triangular Arbitrage 101. For a look at the calculations required to figure the correct lot size to use in a triangular arbitrage transaction, check out Triangular Arbitrage Lot Size. If you have any questions or comments on the topic of Triangular Arbitrage with Bid Ask Quotes, please leave a comment.

Triangular Arbitrage with Bid Ask Quotes page 1 2