Get trade data, orderbooks and statistics for 25 cryptocurrency exchanges and over 15,000 cryptocurrency instruments.

Photo by Pierre Borthiry on Unsplash

Today we are going to build a WebSocket stream that connects to 25+ cryptocurrency exchanges and allows us to receive live trades, orderbook snapshots, statistics and consolidated cross-exchange orderbooks. It will take around 5 minutes and the required services are free.

Most exchanges provide WebSocket connections that allow you to retrieve the data for that exchange. Today we are going to use a tool to aggregate that data and enhance it with statistics, arbitrage notificiations and other essential detail.

The first step is to install…


We are going to stream trade data, orderbook snapshots, and statistics for free in a single WebSocket subscription and a few lines of code.

Streaming, normalized cryptocurrency data

Most exchanges provide WebSocket connections that allow you to retrieve the data for that exchange. However, often we want to stream data for many exchanges and assets. It can also take some work to normalize that data and then turn it into useful insights — for example streaming volatility statistics, arbitrage notifications, or cross-exchange pricing for an asset.

Today we are going to use Cryptostats.dev, …


Introduction to Combined Central Orderbooks, automated arbitrage tables, and easily identifying profitable pairs.

Cryptocurrencies are widely seen as effectively untradeable, or at least encumbered with idiosyncratic factors that make trading them very different from more traditional assets. The main concerns are the price volatility, concentration of large amounts of currency in very few wallets, and the credit risk of the exchanges.

I think this view is somewhat outdated given how the market has developed and this series is intended to introduce some of the trading fundamentals and data requirements for building an effective strategy. …


How to set-up a distributed computer cluster on your home network and use it to calculate a large correlation matrix.

Photo by Taylor Vick on Unsplash

Calculating a correlation matrix can very quickly consume a vast amount of computational resources. Fortunately, correlation (and covariance) calculations can be intelligently split into multiple processes and distributed across a number of computers.

In this article, we will use Dask for Python to manage the parallel computation of a large correlation matrix across a number of computers on a Local Area Network.

What is a Correlation Matrix

A correlation matrix shows the linear statistical relationship between two variables. Famously, correlation does not imply causation, but we still regularly make use of it as part of our efforts to understand the datasets we work with.

If…


Part I — How to retrieve the stock holdings of Hedge Funds automatically using Python and store these in an SQL database.

Photo by M. B. M. on Unsplash

Introduction

Hedge Fund and other investment managers with over $100m in Assets under Management (AUM) are required to file a quarterly document in the US showing the securities that they hold. These documents, known as a 13F filing, are keenly watched by markets to understand what top hedge funds are thinking and how they are allocating their money.

Unfortunately for most investors, simply mimicking the investments you see in a 13F is unlikely to yield you much better than…


Send timely alerts to users even when your app isn’t running. In this example, we will send a daily notification showing the most-read story of the day on the Novella app using Firebase Cloud Messaging.

Photo by Bruno Reyna on Unsplash

We are going to be using the Firebase SDK for PHP which you can download here: https://github.com/kreait/firebase-php/. The first step will be to install this using Composer.

Installing Firebase SDK

The easiest way to install the Firebase SDK on your server is using Composer. …


Automatically saving content as it’s written is an essential part of the user experience. It’s used everywhere from Medium to Microsoft Word. Here’s how to implement this in Kotlin for Android.

Photo by Markus Spiske on Unsplash

The Plan

To create a seamless user experience, we want to save content as user types. Rather than saving after every character that is typed, it would be best to wait for a pause in the typing and save each time the typing stops.

To do this we need three things. Firstly, a user content form. Secondly, a way of determining when the user is typing and thirdly a way of…


Build a responsive UI that shows or hides the toolbar in response to user clicks whilst allowing undisturbed user scrolling.

Photo by Clément H on Unsplash

Kotlin has a fantastic ability to detect user gestures on Android systems. This is important for creating smooth, functional user interfaces that respond in a consistent and intuitive way. However, it can sometimes be difficult to differentiate between similar user actions. For example, when a user scrolls down a window of text this is detected as both a click and a scroll activity. …

Matthew Grint

Markets and Technology

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store