Sign in

Michael Whittle

I was born in Johannesburg, South Africa. My father Richard, mother Teresa, brother Mark, and I lived in Sandton.

My journey as a writer on Medium…

Image by Author

I speak with a lot of writers starting out on Medium who get despondent that they don’t have instant success. I wrote my first article on the 8th of September 2020 (7 months ago). I wrote 15 articles in the first three weeks and only earned $9.04 (about £6)!

I kept going though writing roughly 1 article every 2–3 days. I spent a fair amount of time researching, preparing and then finally writing my articles. I realised along the way that you don’t need to write lengthy involved articles for them to be…

“Whooptydoo. But what does it all mean Basil?”

The crypto bot I developed is really going from strength to strength.

Image by Author

People thought I was “nuts” for giving my crypto bot away for free. My view at the time was that open sourcing it would create a much better product all round. To date I’ve had 10 developers contribute to the application and many people email me or “raise issues” in the repo with suggestions, feature requests for the roadmap, and some have helped fix issues. It’s just great to see the open source community in action.

Although under the Apache 2.0 License I’ve allowed other developers to use…

Coinbase Pro now supports 10 portfolios! This is amazing news for my PyCryptoBot, as it will allow you to run 10 bots concurrently. My bot is open-source and free to…

Build yourself a smart recommender system easily using cosine similarity

Image by PhotoMIX-Company from Pixabay

Recommender systems within applications and services are no longer a “nice to have”. Users are now becoming accustomed to having this functionality as standard. Audio streaming, video streaming, advertising, search engines, blogs, etc. just to name a few.

When it comes to recommender systems there are a few common techniques. My favourite technique is “cosine similarity”. It’s easy to understand and very fast. Even without a data science background, the concept shouldn’t be too difficult to grasp.

The basic concept is as follows.

Leon Vliegenthart very kindly helped me containerise PyCyrptoBot using Github Workflows. An image gets created automatically every time I push or merge an update.

The pull request and description of what was done can be found in my Github repository.

If you are unfamiliar with Docker or need a refresher I wrote an article on it a few months back.

If you are just discovering my Python Crypto Bot (PyCryptoBot), here are some articles to get you up to speed.

And some related articles you may also find interesting.


In order to install the PyCryptoBot Docker container, unsurprisingly you first…

I have been studying Applied Machine Learning with Columbia Engineering through Emeritus. It’s a 5 month course which I really have enjoyed and would recommend.

The instructors are all really good and helpful, especially Robert Manriquez and Puneet Saraswat. They run the course “Office Hours” webinars to assist with complex assignments but also to provide practical walkthroughs of what we have been learning.

In my previous two articles “Predicting Titanic Survivors using ML” and “Predicting House Sale Prices using ML”, I used a great data science and machine learning resource called Kaggle. They provide free datasets for data scientists to…

Hi, thanks for your comment.

This article wasn't about how to trade or technical indicators. It was to give an example of the testing I put my crypto trading bot through.

I have however written loads of articles on how technical indicators, candlesticks and machine learning techniques work. If you look at the other articles I've written you will find them.

I've literally tested thousands of strategies over various markets over years of historical data. I agree that EMA on its own is useless. You need a momentum indicator like MACD in comparison. RSI is totally useless with crypto. Crypto…

I wanted to share my bot results and the config I’m using. I get asked this question a lot in Medium comments, emails and via the Github repo.

Here are my results from the 1st of March 2020 until the 15th of April 2020. It’s worth mentioning that the last few weeks have had very turbulent market conditions with a lot of crashes. These results demonstrate how the bot handled in tough conditions. In normal conditions these figures are typically double or triple.

Trades: 6
Margin (After Fees): 0.81%
Net Profit: £13.87

ETH-GBP Trades: 6 Margin (After Fees): 1.98%…

I received a feature request in the PyCryptoBot Github repo to add Telegram support to the crypto bot. I implemented it and it works really well. For those who would like to use it this is how you set it up.

"coinbasepro" : {
"api_url" : "",
"api_key" : "",
"api_secret" : "",
"api_passphrase" : "",
"config" : {
"base_currency" : "BTC",
"quote_currency" : "GBP",
"live" : 1,
"sellatloss" : 0
"telegram" : {
"token" : "",
"client_id" : ""


First, you need to use the new format of the, “config.json” as above. Second, all…

Michael Whittle

CCIE R&S #24223 | Network Architect | Security Specialist | Software Developer | Blockchain Developer | Studying Machine Learning & AI

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