Kyle Downey

Introducing Pelican FIX

Starting Serenity's core FIX engine

After reviewing the available Python FIX implementations I decided to create my own, both as a learning exercise and to fill some functional gaps. In particular I wanted Python-friendly code generation from any FIX specification from 4.0 to 5.0SP2 with a rich metadata model so later on I can build tools like a FIX schema validator if I want . . .

Read More

May 24, 2020

Serenity MVP

Creating a minimum viable trading engine

This weekend I finally got Serenity 0.2.0 up-and-running with an example trading strategy. The code is messy; the example strategy is brittle and likely dangerous to your financial health; it's missing unit tests all over the place; etc.. But it starts up and trades the Phemex testnet based on a hypothetical trading signal using live . . .

Read More

May 03, 2020

Research-to-Go with Kubernetes

Revisiting Jupyter Lab with Kubernetes

In Research-to-Go with Docker we used Docker and Docker Compose to create a Serenity research environment. Unfortunately all good things must come to an end, and what's described in that previous article is currently not working because Jupyter Lab has moved on to the 2.x series, but the Git extension has not kept up; the Docker Compose . . .

Read More

April 11, 2020

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