Kyle Downey

Up, Up and Away

Bringing Serenity to the cloud with AKS

Up until now all of the Kubernetes work I've done has been local on my Ubuntu server, charger. But there is only so much compute & memory I can wring from that server, so in this blog post we will look at Azure Kubernetes Service (AKS) and use Azure to deploy both a private container registry and a Kubernetes cluster, with the intent . . .

Read More

November 06, 2020

Distributed Backtesting

Scaling backtest capacity with Dask and Kubernetes

Two months ago I upgraded the motherboard in my home Linux PC to accommodate an Intel i9 CPU, specifically the Intel Core i9-10900 Comet Lake 10-Core CPU running at 2.8 GHz paired with the Cooler Master MasterLiquid ML240R CPU liquid cooler. This box runs production market data capture as well as a test trading strategy that I am working on, . . .

Read More

October 22, 2020

Backtesting Serenity

Building a tick-by-tick backtester for Bitcoin

I have collected about half a year of trade price data from the Phemex futures exchange, but until now I have not had the means to leverage this data to systematically test strategy performance. With the addition of a tick-by-tick backtester to Serenity with the 0.4.0 release, it is now possible to write a Serenity trading strategy in 100 . . .

Read More

September 20, 2020

Mr. Blue Sky

Cloud tick storage with Azure and Python

Previously I built a local tickstore (covered in the blog post "Building Behemoth") based on HDF5, pandas and RAID storage. While the RAID storage gives me a degree of confidence, depending on a single Linux server sitting on the floor next to my desk is not ideal. Furthermore, it would be even better if researchers didn't have . . .

Read More

August 15, 2020

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