  Cryptocurrencies such as Bitcoin and Ethereum have recently gained a lot of
popularity, not only as a digital form of currency but also as an investment
vehicle. Online marketplaces and exchanges allow users across the world to
convert between dozens of different cryptocurrencies and regular currencies
such as euros or dollars. Due to the novelty of this concept, the volatility of
these markets and the differences in maturity and usage of particular
marketplaces, currency pairs may appear at multiple marketplaces but at
different trading prices. This paper proposes a novel algorithmic approach to
take advantage of these mispricings and capitalize upon the pricing differences
that exist between exchanges and currency pairs. To do so, we model each
combination of a currency and a market as one node in a graph. A directed link
between two nodes indicates that a conversion between these two currency/market
pairs is possible. The weight of the link relates to the exchange rate of
executing this particular currency exchange. To leverage the mispricings, we
seek for cycles in the graph such that upon multiplying the weights of the
links in the cycle, a value greater than 1 is found and thus a profit can be
made. Our goal is to do this efficiently, without exhaustively enumerating all
possible cycles in the graph. Therefore, we convert our data and address the
problem in terms of finding minimum weight triangles in graphs with integer
weights, for which efficient algorithms can be utilized. We experiment with
parameter settings (heuristics) related to the conversion of exchange rate data
into integer weight values. We show that our approach improves upon a
reasonable baseline algorithm in terms of computation time. Furthermore, using
a real-world dataset, we demonstrate how the obtained minimal weight cycles
indeed unveil a number of currency exchange cycles that result in a net profit.
