Image for post
Image for post

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


Articles by a solution architect and technical enthusiast.

Image for post
Image for post

I started writing on Medium mid-September 2020. It has been fun writing the articles and sharing knowledge. The biggest challenge is trying to figure out what people want to read.

If you would like me to write on any topics please do get in touch either directly or leave a comment.

Articles published with the About Me Stories publication

Articles published with the codeburst.io publication

Articles published by The Startup publication


Let’s start with a basic introduction to trading…

Image for post
Image for post

What is an exchange?

“An exchange is a marketplace where securities, commodities, derivatives and other financial instruments are traded. The core function of an exchange is to ensure fair and orderly trading and the efficient dissemination of price information for any securities trading on that exchange.” — Investopedia

These are the exchanges I use. There are many exchanges out there for various purposes. The exchange you use can depend on your region, regulations, and funding currency.

Crypto exchange (quick & easy — high fees): Coinbase
Crypto exchange (advanced — moderate fees): Coinbase Pro
Crypto exchange (alt coins): Binance
Online Trading Platform (Spread betting & CFD’s): IG
Stocks, Shares, ISA, SIPP: Barclays Smart…


As promised, here is a follow-up to my previous article…

Just to re-cap…

  • Sep 8, 2020 to Sep 30, 2020

Articles: 15
Earnings: $9.04

  • Oct 1, 2020 to Oct 31, 2020

Articles: 19
Earnings: $44.43

  • Nov 1, 2020 to Nov 30, 2020

Articles 19
Earnings: $84.76

  • Dec 1, 2020 to Dec 31, 2020

Articles: 6
Earnings: $71.14

  • Jan 1, 2021 to Jan 15, 2020 (in progress)

Articles: 3 (so far)
Earnings: $51.62 (looking good for half way through the month)

What I’ve discovered…

In the first 2.5 months I was writing a lot. Almost 20 good quality articles a month. I was a little concerned that I would not be able to keep up the pace or run out of topics to cover. If that happened would my earnings drop significantly? December 2020 would be the test as I didn’t have much time to write and only published six that month. There was a slight drop from the previous month but not all that bad. …


Image for post
Image for post

I’m in the process of developing a crypto trading bot in Python. I’ve been writing a series of articles documenting the progress. The Github repo can be found here.

The trading bot is coming along nicely now. I’m in the final stages of testing that it correctly picks up buy and sell events within the scheduler. In my repo you can try it using “pycryptobot.py”.

The next stage of the crypto bot is to execute live trades on the Coinbase Pro exchange. In order to do this I will be using the Coinbase Pro API. …


Image for post
Image for post

I’m in the process of developing a crypto trading bot in Python. I’ve been writing a series of articles documenting the progress. The Github repo can be found here.

If you are following my series of articles I’m making great progress.

What I’ve added now…

  • Trading exchange account emulator (for simulations and tests)
  • Optimised trading indicator algorithm (EMA, MACD, and OBV)
  • Trade simulation automation sampling with random time frames
  • Made a start with the trading bot scheduling

Trading exchange account emulator

In order to test my trading bot I needed to simulate a trading account on a crypto exchange, this case, “Coinbase Pro”.

I created a model called, “TradingAccount” which you can find in, “models/TradingAccount.py” in my Git repo. …


Image for post
Image for post

I’m in the process of developing a crypto trading bot in Python. I’ve been writing a series of articles documenting the progress. The Github repo can be found here.

I’ve got to the point now where I want to run simulations using real data to see how the bot would perform in the wild. This is excluding fees for the moment but I’ll add those next.

My first experiment looks as follows…


Image for post
Image for post

I’m in the process of developing a crypto trading bot in Python. I’ve been writing a series of articles documenting the progress. The Github repo can be found here.

I’m going to automate day trading the BTC-USD market on the Coinbase Pro exchange using 1 hour intervals. In order to do this I’m going to run several experiments to confirm the combination of technical indicators I want to use. …


Image for post
Image for post

I’m in the process of developing a crypto trading bot in Python. I’ve been writing a series of articles documenting the progress. The Github repo can be found here.

I’m currently studying an Applied Machine Learning course. I’ve just learnt about forecasting using Pandas Time Series plots and the Seasonal ARIMA model. I thought I would implement what I’ve learnt into my crypto trading project.

The first update I made to my project was to set the date as the DataFrame key. It was previously a column called “datetime”.

datetimeidx = pd.DatetimeIndex(pd.to_datetime(self.df['epoch'], unit='s'), dtype='datetime64[ns]', freq='D')
self.df.set_index(datetimeidx, inplace=True)
self.df = self.df.drop(columns=['epoch','index'])
self.df.index.names …


Image for post
Image for post

I’m in the process of developing a crypto trading bot in Python. I’ve been writing a series of articles documenting the progress. The Github repo can be found here.

I’ve included the following code in my CoinbasePro model but the complete code can be found on Github.

class CoinbasePro():
def __init__(self, market='BTC-GBP', granularity=86400, iso8601start='', iso8601end=''):
self.levels = []
self.__calculateSupportResistenceLevels()
def getSupportResistanceLevels(self):
return self.levels
def __calculateSupportResistenceLevels(self):
'''Support and Resistance levels.'''
for i in range(2, self.df.shape[0] - 2):
if self.__isSupport(self.df, i):
l = self.df['low'][i]
if self.__isFarFromLevel(l):
self.levels.append((i, l))
elif self.__isResistance(self.df, i):
l = self.df['high'][i]
if self.__isFarFromLevel(l):
self.levels.append((i, …

About

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