Kyle Downey

The Tau of Market Data

Applying Tau for real-time market data recording

In the last post on Serenity we looked at the Tau functional reactive programming library. In this post we will move beyond simple math processing with Tau and start connecting it to I/O, in particular the Websocket channels commonly used for distributing marketdata from cryptocurrency exchanges. To do this we'll need to make some big . . .

Read More

April 07, 2020


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