Kyle Downey


Functional reactive programming for Python

For over a year I have been thinking about better programming models for functional reactive programming, or FRP. It's a natural paradigm for financial software, which often deals with processing rich streams of data, and so the foundation of Serenity will necessarily include it. The problem is API: while I agree with and admire many . . .

Read More

March 28, 2020

Goddess of Fame

Automating the Phemex exchange with Python

Phemex is a new cryptocurrency derivatives exchange founded by a group of ex-Morgan Stanley developers. Its name comes from a combination of the Greek goddess of fame, Pheme, and "mercantile exchange." Its primary offering is what it terms a perpetual futures contract, which most closely resembles a CFD or contract for difference: . . .

Read More

March 01, 2020

RAPIDS at Home

Building a GPU-accelerated Ubuntu Server

On Thursday night my new RTX 2080 Super GPU card arrived, which means it's time to crack open my home-built Linux desktop, Charger. The goal of this project is to create a dual-GPU Ubuntu server running nvidia-docker so I can experiment with RAPIDS, Nvidia's GPU accelerator for data science.

Getting started

After . . .

Read More

February 22, 2020


Running a local Kubernetes cluster with kind

So far we've been using Docker and Docker Compose for running components of the Serenity trading system, but at a certain point we will need the power of Kubernetes to orchestrate and provision resources for the trading system.

The Kubernetes in Docker project, or kind, is a more featureful alternative to minikube for running . . .

Read More

February 01, 2020

Death, Taxes and Bitcoin

Building a database for tax reporting

Once a year I need to pay taxes for the capital gains on my Bitcoin trades, which in prior years has meant also paying the Bitcoin Taxes service to generate a TXF file with the necessary inputs for TurboTax to do its thing and generate a statement. Unfortunately this year Bitcoin Taxes could not handle the complexity of trading across . . .

Read More

January 20, 2020

Research-to-Go with Docker

Containerizing Jupyter Lab and Git

With our tickstore building up every day with all the BTC-USD and BTC-USDT trades from Coinbase and Binance, it's time to create a research environment. For this part of the project I wanted a combination of Jupyter Lab with its integrated Git plugin, plus a means of sharing the RAID store of ticks on the local PC. Docker and Docker . . .

Read More

December 15, 2019

Streaming Marketdata Recorder

A simple trade data recorder in Python

In the previous two articles of this series on the Serenity cryptocurrency trading system we built a polling REST marketdata recorder and a Pandas-based local tick store. In this next article we are going to upgrade that system to support real-time trade capture from multiple exchanges through their websocket interfaces: Coinbase Pro and . . .

Read More

November 24, 2019