{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "
\n", "
\n", "
Crypto Trading and

Arbitrage Identification Strategies
\n", "
\n", "
March 29th @ Slash Hackathon 2019
\n", "
\n", "\n", "
Questions? Contact: roman@celo.org
\n", "
\n", "
\n", "
\n", "
\n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": { "toc": true }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Representations of a Market" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assume that there is a market with $N$ currencies. Also assume for simplicity that every possible pair can be traded (not a necessary assumption for the depicted representations). The exchange rates can be displayed by a source-to-target exchange rate matrix. Let us generate and analyze an exemplary such matrix and translate it into a graph representation." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "code_folding": [] }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "9cd395e026aa41f9bd34d24c2bc40212", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Button(description='New Example', style=ButtonStyle())" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# set things up and create button" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "code_folding": [] }, "outputs": [], "source": [ "# set some parameters, generate exchange rate matrix and the corresponding graph\n", "N = 6 # number of currencies\n", "max_spread_pct = 0.05 # maximum bid-ask spread in pct of bid, 0.05 for 5%" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exchange Rate Matrix Representation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The exchange rate matrix takes the current best bids and best asks in the market and generates a matrix of multipliers that shows how many units of the target currency one would receive for a unit of the source currency." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "code_folding": [], "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
target
012345
source01.000.580.630.270.170.20
11.681.000.390.740.470.79
21.572.481.000.040.150.11
33.641.3522.941.000.220.23
45.842.026.844.401.000.49
54.761.218.594.411.971.00
\n", "
" ], "text/plain": [ " target \n", " 0 1 2 3 4 5\n", "source 0 1.00 0.58 0.63 0.27 0.17 0.20\n", " 1 1.68 1.00 0.39 0.74 0.47 0.79\n", " 2 1.57 2.48 1.00 0.04 0.15 0.11\n", " 3 3.64 1.35 22.94 1.00 0.22 0.23\n", " 4 5.84 2.02 6.84 4.40 1.00 0.49\n", " 5 4.76 1.21 8.59 4.41 1.97 1.00" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# generate and display random exchange rate matrix " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Directed Graph Representation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above exchange rate matrix can be translated into a directed graph with nodes representing the currencies and the edge weights set to the exchange rate matrix multipliers." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "code_folding": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# display corresponding directed graph" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An arbitrage is a cylce for which the **cumulative product** of the edge weights in an exchange rate graph is bigger than one. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Log-Transformed Representations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are many well known graph algorithms that deal with cycle lengths - the **cumulative sum** of the edge weights. Fortunately, one can easily translate a cumulative product optimization problem into a convex cumulative sum optimzation problem by taking logs. To see this, note that for $a>0\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
target
012345
source0-ln(1.0)-ln(0.58)-ln(0.63)-ln(0.27)-ln(0.17)-ln(0.2)
1-ln(1.68)-ln(1.0)-ln(0.39)-ln(0.74)-ln(0.47)-ln(0.79)
2-ln(1.57)-ln(2.48)-ln(1.0)-ln(0.04)-ln(0.15)-ln(0.11)
3-ln(3.64)-ln(1.35)-ln(22.94)-ln(1.0)-ln(0.22)-ln(0.23)
4-ln(5.84)-ln(2.02)-ln(6.84)-ln(4.4)-ln(1.0)-ln(0.49)
5-ln(4.76)-ln(1.21)-ln(8.59)-ln(4.41)-ln(1.97)-ln(1.0)
\n", "" ], "text/plain": [ " target \n", " 0 1 2 3 4 5\n", "source 0 -ln(1.0) -ln(0.58) -ln(0.63) -ln(0.27) -ln(0.17) -ln(0.2)\n", " 1 -ln(1.68) -ln(1.0) -ln(0.39) -ln(0.74) -ln(0.47) -ln(0.79)\n", " 2 -ln(1.57) -ln(2.48) -ln(1.0) -ln(0.04) -ln(0.15) -ln(0.11)\n", " 3 -ln(3.64) -ln(1.35) -ln(22.94) -ln(1.0) -ln(0.22) -ln(0.23)\n", " 4 -ln(5.84) -ln(2.02) -ln(6.84) -ln(4.4) -ln(1.0) -ln(0.49)\n", " 5 -ln(4.76) -ln(1.21) -ln(8.59) -ln(4.41) -ln(1.97) -ln(1.0)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "...results in:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
target
012345
source00.0000000.5447270.4620351.3093331.7719571.609438
1-0.5187940.0000000.9416090.3011050.7550230.235722
2-0.451076-0.9082590.0000003.2188761.8971202.207275
3-1.291984-0.300105-3.1328820.0000001.5141281.469676
4-1.764731-0.703098-1.922788-1.4816050.0000000.713350
5-1.560248-0.190620-2.150599-1.483875-0.6780340.000000
\n", "
" ], "text/plain": [ " target \n", " 0 1 2 3 4 5\n", "source 0 0.000000 0.544727 0.462035 1.309333 1.771957 1.609438\n", " 1 -0.518794 0.000000 0.941609 0.301105 0.755023 0.235722\n", " 2 -0.451076 -0.908259 0.000000 3.218876 1.897120 2.207275\n", " 3 -1.291984 -0.300105 -3.132882 0.000000 1.514128 1.469676\n", " 4 -1.764731 -0.703098 -1.922788 -1.481605 0.000000 0.713350\n", " 5 -1.560248 -0.190620 -2.150599 -1.483875 -0.678034 0.000000" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# display log-transformed exchange rate matrix and corresponding graph" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Every cycle of **negative length** in the above graph with negative-log-transformed weights is an arbitrage cylce. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Identifying Arbitrage Cycles" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Finding an Arbitrage Cycle with Bellman-Ford" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One can check if an arbitrage cylce exists and if so, **identify one such a cylce** in the log-transformed graph representation using a slighlty adjusted [Bellman-Ford algorithm](https://en.wikipedia.org/wiki/Bellman-Ford_algorithm) which has a complexity of $\\mathcal{O}(|V||E|)$ where $|V|$ denotes the number of vertices and $|E|$ denotes the number of edges. A neat visualization of how the Bellman-Ford algorithm works can be found [here](https://www-m9.ma.tum.de/graph-algorithms/spp-bellman-ford/index_en.html). \n", "\n", "The Bellman-Ford algorithm itself only gives the shortest distance from a prespecified source node to all other nodes in the graph. It needs to be adjusted to:\n", "- show if there is a negative cycle\n", "- to output a negative cycle\n", "- to always find a negative cycle (if there is one) even the graph is not connected" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "code_folding": [] }, "outputs": [], "source": [ "# The Bellman-Ford function used in this notebook\n", "def bf_negative_cycle(G):\n", "\n", " # Remove nan edges\n", " n = len(G.nodes()) + 1\n", " edges = [edge for edge in G.edges().data() if ~np.isnan(edge[2]['weight'])]\n", "\n", " # Add a starting node and add edges with zero weight to all other nodes\n", " start_node_edges = [(n-1, i, {'weight': 0}) for i in range(n-1)]\n", " edges = edges + start_node_edges\n", "\n", " # Initialize node distances and predecessors\n", " d = np.ones(n) * np.inf\n", " d[n - 1] = 0 # Starting node has zero distance\n", " p = np.ones(n) * -1\n", "\n", " # Relax n times\n", " for i in range(n): \n", " x = -1\n", " for e in edges:\n", " if d[int(e[0])] + e[2]['weight'] < d[int(e[1])]:\n", " d[int(e[1])] = d[int(e[0])] + e[2]['weight']\n", " p[int(e[1])] = int(e[0])\n", " x = int(e[1])\n", " if x == -1: # If no relaxation possible, no negative cycle\n", " return None\n", " \n", " # Identify negative cycle\n", " for i in range(n):\n", " x = p[int(x)]\n", " cycle = []\n", " v = x\n", " while True:\n", " cycle.append(int(v))\n", " if v == x and len(cycle) > 1:\n", " break\n", " v = p[int(v)]\n", " return list(reversed(cycle))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "code_folding": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "At least one arbitrage cycle exists! One such cycle is [2, 1, 5, 3, 2] with cycle length -5.2893 which implies and arbitrage multiplier of 198.2033.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Check if arbitrage cycle exists using Bellman-Ford. If so, output an arbitrage cycle" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Finding an \"Optimal\" Set of Cycles " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Identifying the cycle with an arbitrary number of vertices with the **largest** arbitrage multiplier is NP-hard in general. Finding this cycle with many tradable pairs thus quickly becomes computationally infeasible and one has to resort to approximate/heuristic algorithms.\n", "\n", "Observe that finding the cycle with the largest multiplier (i.e. the cycle with the most negative cycle length in the graph with negative-log-transformed weights) of all cycles that visit each vertex exactly once is equivalent to the (asymmetric) [Travelling Salesman Problem](https://en.wikipedia.org/wiki/Travelling_salesman_problem) - a well known NP-hard problem. The Travelling Salesman Problem (TSP) with $n+1$ cities can be formulated as an integer linear program for a distance matrix $C$ as follows\n", "\\begin{align}\n", "\\min &\\sum_{i=0}^n \\sum_{j\\ne i,j=0}^nc_{ij}x_{ij} && \\\\\n", " & 0 \\le x_{ij} \\le 1 && i,j=0, \\cdots, n \\\\\n", " & u_{i} \\in \\mathbf{Z} && i=0, \\cdots, n \\\\\n", " & \\sum_{i=0,i\\ne j}^n x_{ij} = 1 && j=0, \\cdots, n \\\\\n", " & \\sum_{j=0,j\\ne i}^n x_{ij} = 1 && i=0, \\cdots, n \\\\\n", "&u_i-u_j +nx_{ij} \\le n-1 && 1 \\le i \\ne j \\le n\n", "\\end{align}\n", "\n", "\n", "\n", "The TSP is only **NP-hard because we are asking for a single roundtrip solution** that covers all cities / currencies (the last two sets of constraints in the above formulation). But **subtours are fine in the arbitrage finding task** and even skipping some assets completely (a self-cylce) is not a problem! " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we remove the \"no-subtours\" constaints of the TSP and also account for the diagonal of $X$ in the objective function, we arrive at the linear programming relaxation of the [assignment problem](https://en.wikipedia.org/wiki/Assignment_problem) \n", "\\begin{align}\n", "\\min &\\sum_{i=0}^n \\sum_{j=0}^nc_{ij}x_{ij} && \\\\\n", " & 0 \\le x_{ij} \\le 1 && i,j=0, \\cdots, n \\\\\n", " & \\sum_{i=0}^n x_{ij} = 1 && j=0, \\cdots, n \\\\\n", " & \\sum_{j=0}^n x_{ij} = 1 && i=0, \\cdots, n \\\\\n", "\\end{align}\n", "This linear program always has an integer solution (due to the totally unimodular linear constraint matrix) and thus solves the assignment problem. You can use a very specialized solver for the assignment problem (this notebook uses [this one](https://developers.google.com/optimization/assignment/simple_assignment) - extremely fast and exact solutions!) or just solve the linear program above - [CVXPY](https://www.cvxpy.org/) makes this very easy. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "code_folding": [ 0 ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "status: optimal\n", "optimal value -5.965679824113291\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
012345
01.0-0.00.0-0.00.00.0
1-0.0-0.0-0.00.00.01.0
20.01.0-0.0-0.0-0.0-0.0
3-0.00.01.0-0.00.00.0
40.00.0-0.01.0-0.0-0.0
50.00.00.00.01.0-0.0
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5\n", "0 1.0 -0.0 0.0 -0.0 0.0 0.0\n", "1 -0.0 -0.0 -0.0 0.0 0.0 1.0\n", "2 0.0 1.0 -0.0 -0.0 -0.0 -0.0\n", "3 -0.0 0.0 1.0 -0.0 0.0 0.0\n", "4 0.0 0.0 -0.0 1.0 -0.0 -0.0\n", "5 0.0 0.0 0.0 0.0 1.0 -0.0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Alternative: Solve Assignment Problem with CVXPY \n", "X = Variable((len(C_ln),len(C_ln)))\n", "iota = np.ones((len(C_ln),1))\n", "\n", "constraints = [X <= 1,\n", " X >= 0,\n", " X*iota == 1,\n", " np.transpose(iota)*X == 1]\n", "\n", "# Form objective.\n", "obj = Minimize(sum(multiply(X, C_ln)))\n", "\n", "# Form and solve problem.\n", "prob = Problem(obj, constraints)\n", "prob.solve() # Returns the optimal value.\n", "print (\"status:\", prob.status)\n", "print (\"optimal value\", prob.value)\n", "X = pd.DataFrame(X.value)\n", "display(X.round(3))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "code_folding": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Optimal cycle set multiplier (assumes one has enough quantities in every sub-cycle): 389.5750080640003. \n", " Multiplier is garuanteed to be at least as large as the multiplier found by Bellman-Ford (198.2033 in this example).\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Find best set of arbitrage cycles by solving the assignment problem" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Beyond Arbitrage Cycles - Maximize wrt. Quantities (EXPERIMENTAL!)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assume that we start out with one quantity in each currency. Let us find the set of trades that maximize the quantity in currency $k$ without changing the other quantities. For two matrices $A$ and $B$ of the same dimensions, let $A\\circ B$ denote the element-wise product (also denoted [Hadamard product](https://en.wikipedia.org/wiki/Hadamard_product_(matrices))). \n", "\n", "Let $C$ denote the exchange rate matrix (not log-transformed) and $Q$ a matrix of the same size as $C$ where the entry $Q_{i,j}$ denotes the number of $i$ coins that flow from currency $i$ to currency $j$. Let $\\mathbb{1}$ denote a vector of ones of size $N\\times 1$, then vector of outflows from the respective currency inventories is\n", "\n", "\\begin{align}\n", "\\text{outflows} = Q \\mathbb{1}.\n", "\\end{align}\n", "The vector of inflows (also in currency $i$ units) is\n", "\n", "\\begin{align}\n", "\\text{inflows} = (Q \\circ C)' \\mathbb{1}\n", "\\end{align}\n", "and hence the delta inventory is\n", "\n", "\\begin{align}\n", "\\Delta\\! I = (Q \\circ C)' \\mathbb{1} - Q \\mathbb{1}.\n", "\\end{align}\n", "\n", "Let $I_{init}$ denote the initial inventory the maximizre \n", "\n", "\\begin{align}\n", "\\max_{Q} \\Delta\\! I_k && \\\\\n", " & \\Delta\\! I_{\\neq k} =0 && \\text{| No change in inventory in other assets}\\\\\n", " & \\Delta\\! I_k \\leq 1000 && \\text{| Problem would be unbounded in case of arb-cycle}\\\\ \\\\\n", "\\end{align}\n", "\n", "The nice thing about this setup is that it allows to easily incorperate new constraints like the blocksize of the observed quotes. The drawback is that this is numerically extremely challenging!" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "code_folding": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
target
012345
source01.000.580.630.270.170.20
11.681.000.390.740.470.79
21.572.481.000.040.150.11
33.641.3522.941.000.220.23
45.842.026.844.401.000.49
54.761.218.594.411.971.00
\n", "
" ], "text/plain": [ " target \n", " 0 1 2 3 4 5\n", "source 0 1.00 0.58 0.63 0.27 0.17 0.20\n", " 1 1.68 1.00 0.39 0.74 0.47 0.79\n", " 2 1.57 2.48 1.00 0.04 0.15 0.11\n", " 3 3.64 1.35 22.94 1.00 0.22 0.23\n", " 4 5.84 2.02 6.84 4.40 1.00 0.49\n", " 5 4.76 1.21 8.59 4.41 1.97 1.00" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
inventory_start
currency
01.0
11.0
21.0
31.0
41.0
51.0
\n", "
" ], "text/plain": [ " inventory_start\n", "currency \n", "0 1.0\n", "1 1.0\n", "2 1.0\n", "3 1.0\n", "4 1.0\n", "5 1.0" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "seconds it took: 0.017813920974731445\n", "status: optimal\n", "optimal value: 999.998326792761\n", "\n", " Quantities matrix Q:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
target
012345
source000.555261.181141.055740.8239240.642941
133.497301.316540.51698513.059995.599
270.375147.209700.35249712.259212.3467
382.154117.03695.9105700.5198860.254038
470.00330.2603280.33031517.599201.1418
527.23382.530420.4002146.2941541.16930
\n", "
" ], "text/plain": [ " target \n", " 0 1 2 3 4 5\n", "source 0 0 0.55526 1.18114 1.05574 0.823924 0.642941\n", " 1 33.4973 0 1.31654 0.516985 13.0599 95.599\n", " 2 70.3751 47.2097 0 0.352497 12.2592 12.3467\n", " 3 82.1541 17.0369 5.91057 0 0.519886 0.254038\n", " 4 70.0033 0.260328 0.330315 17.5992 0 1.1418\n", " 5 27.2338 2.53042 0.400214 6.29415 41.1693 0" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
inventory_startinventory_deltainventory_after_trades
currency
01.09.999983e+021000.998327
11.08.605809e-091.000000
21.01.377347e-061.000001
31.07.083011e-081.000000
41.0-1.618656e-071.000000
51.0-1.211123e-071.000000
\n", "
" ], "text/plain": [ " inventory_start inventory_delta inventory_after_trades\n", "currency \n", "0 1.0 9.999983e+02 1000.998327\n", "1 1.0 8.605809e-09 1.000000\n", "2 1.0 1.377347e-06 1.000001\n", "3 1.0 7.083011e-08 1.000000\n", "4 1.0 -1.618656e-07 1.000000\n", "5 1.0 -1.211123e-07 1.000000" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Maximize inventory" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Live Arbitrage Identification" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this part, we are looking for live arbitrage opportunities on some centralized exchanges. The main tool we use for this is [CCXT](https://github.com/ccxt/ccxt) - an open source JavaScript / Python / PHP cryptocurrency trading library with support for more than 130 crypto exchanges.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Binance fee structure can be found [here](https://www.binance.com/en/fee/schedule)." ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "code_folding": [] }, "outputs": [], "source": [ "# set some parameters" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "code_folding": [] }, "outputs": [ { "data": { "application/javascript": [ "IPython.notebook.execute_cells_below()" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "bbff30b178634ef39a4e2a0f8938804a", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Button(description='Find Arbitrage Cycles', style=ButtonStyle())" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# set things up and create button" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "code_folding": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Updating all quotes (496 pairs overall) took 0.9450349807739258 seconds.\n" ] } ], "source": [ "# create real time exchange rate matrix" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "code_folding": [], "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Bellmann-Ford took 0.22376108169555664 seconds.\n", "At least one arbitrage cycle exists! One such cycle is ['BTC', 'CDT', 'ETH', 'BTC'] with cycle length -0.000546627229625 which implies and arbitrage multiplier of 1.0005467766575147.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Node012
TickerBTCCDTETH
\n", "
" ], "text/plain": [ "Node 0 1 2\n", "Ticker BTC CDT ETH" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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evXq3H777WRmZrJr1y77UqktW7YwevRojhw5AkBmZiYnTpxg6dKlFBQUMGPGDB0LKS5P95AdQL91izjOxUuprFYrlStX5u6777YHcG5uLqtXryY4OJiIiAhWrFjBG2+8YX+Pr68voaGhTJo0iU8++YS0tDSnXIvI1VAPWUTKhEsNOaelpbFz507atWvHDTfcwG+//caPP/7I7bffjpeXF6tWrWLdunU88cQTNGnS5LJtiTibAtkB3nzzTYYMGUJQUBAZGRn8+OOPRZ7v2rWrkyoTKZ8uvudcGLBJSUlMnjyZQ4cO0aRJE3777TfuvfdeRo0aVWTGdlJSEs888wx9+/ale/fu+Pr6OutSROwUyA5w4TrkrKws6tWrR/v27TGZTGzZsqXIPr0iUvrS09NZt24djRs3Jjw8/E/P5+TksGrVKlavXs0PP/xA586dFc7idApkB2jdujV79uy55Pfh4eHs3r3bWaWJVCjFzda+nHPnzrFhwwaFszidJnU5QKVKldi1axcA69evp1atWk6uSKRiuvDIyJL2NapUqcKwYcOIjIxk586ddO/enU8++YTw8HDGjh3L559/TmZmZmmWLQKoh+wQO3fu5J577sFkMuHh4cGqVato3rw5ADNnzuTZZ591coUicrXUc5brTYHsQKmpqVStWtXZZYiIgymc5XpQIDvIrl27iIuLo3v37lSpUoXExEQADV+LlDMKZyktCmQHmD59Op999hnt27fn2LFj9O/fnzlz5uDm5sbkyZN57LHHnF2iiJQChbM4kgLZAZo1a8aePXvw9vYmNTWVevXqERcXh6+vL+Hh4fYlUSJSfimc5VopkB0gLCyMffv2YTKZKCgooFatWpw8eRJ3d3fCwsLYv3+/s0sUketI4Sx/hQLZAR544AFMJhPdunUjKioKPz8/zp07h4+PD+7u7kRGRjq7RBFxEoWzlJQC2QHy8/N59913OXjwIB07dmTEiBH873//4+TJkwwbNgxPT09nlygiLkDhLJejQBYRcQKFs1xMgewA58+f56WXXmLVqlXEx8fj5eVFw4YNmTBhAqNGjXJ2eSLi4hTOAgpkh+jTpw+DBw/mjjvuYOXKlWRlZTFs2DBmzJhB7dq1+fe//+3sEkWkjFA4V1wKZAe4eCZ127Zt+f777wFo0qQJsbGxzipNRMowhXPFosMlHMDf35/NmzcD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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Check if arbitrage cycle exists using Bellman-Ford. If so, output an arbitrage cycle" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "code_folding": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Solving assignment problem took 0.053289175033569336 seconds.\n", "\n", " Assignment problem multiplier is 1.0006195840057635.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Node012345
TickerADABTCCDTETHNEOUSDT
\n", "
" ], "text/plain": [ "Node 0 1 2 3 4 5\n", "Ticker ADA BTC CDT ETH NEO USDT" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Find best set of arbitrage cycles by solving the assignment problem " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Practical Challenges of Arbitrage Trading" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Aspects to consider:\n", "* Speed, speed, speed!\n", "* Timing issues\n", "* Costs of inventory (opportunity cost, market risk, custody risk)\n", "* Available liqudity\n", "* Precision of quantities\n", "* Error handling\n", "* ..." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": { "height": "720px", "left": "27.9943px", "top": "110.994px", "width": "271.528px" }, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 1 }