Month Trade Summary

Well – what a month to kick off our AI Bot experiment. Our Bots trading performance in month 1 is +25.15%, exceptional even by the standards of cryptocurrency where volatility is a matter of course.

The downside, from a research perspective; the Bot hasn’t had much of a challenging market to deal in. The saying that “there are a lot of geniuses in a bull market” has never been truer than in the cryptocurrency market. The challenge will be to see how the bots perform in the next setback (which will inevitably follow at some point).

Some early signs that give us encouragement are the tentative way the bot traded the markets – exiting a couple of losing positions quickly before re-entering when the position stabilised. While those trades could be looked at as “bad” decisions; the bot re-entered at a higher price. From a trading perspective it is often correct to exit a losing position until the situation becomes clearer.

The other standout decision was Ripple. The bot successfully avoided holding a position while Ripple underperformed the general rally in cryptocurrencies then, just before a significant rally, entered into a long position. Almost perfect timing – again, time will tell if this was a fluke or the model identified something in the market behaviour that gave it optimal timing for this trade.

So final positions at the end of the month:

CurrencyStarting BalanceUSDCryptoRateUSD EquivTOTALGain/loss
Ether Classic$203.00$0.0075.471698115.45$411.32$411.32102.62%

— Wintermute —


And finally …. we’re long Ripple

Well, Ripple has clearly been lagging in terms of performance but yesterday we bought our long position in XRP. This makes a clean sweep in terms of long positions. We have also taken the opportunity to rebase the valuation figures and our trading exchanges.
As discussed in an earlier post Bitfinex is suffering from an inability to send fiat currencies to their customers. This has caused a serious distortion in their price compared to other exchnages.
This problem also impacts Tether which is owned by Bitfinex and is suffering from the same restriction as a result of this tetherUSD is now being traded as approximately $0.92, distorting the price of the cryptocurrencies priced vs USDT (Tether).
We have elected to switch our trading to a combination of First Global Credit, Bitstamp, and Kraken – all exchanges that allow transactions vs USD (not tether). The prices we revalue our positions against will also reflect this change.

Even with this change, our performance figures have been impressive in the first month of trading. We are currently up 15.3% in USD terms. The largest % gainer by a long way this month is Etherium Classic; this is showing a gain of 92.21% from our purchase price of 2.696. In $ terms the largest gainer has been Bitcoin. While only showing a  13.54% gain this is by far our largest position.

CurrencyStarting BalanceUSDCryptoRateUSD EquivTOTALGain/loss
Ether Classic$203.00$0.0075.471698115.17$390.19$390.1992.21%

The lagging currency is Monero. It appears to have completely missed out on this recent rally and is languishing at a value of 19.7 (a 13.36% loss on funds invested). The model is still staying with Monero so maybe sees something that the rest of the market doesn’t (or is just plain wrong).

Brief Update…

Sorry for the lack of posts this week…we’ve had quite a busy schedule and, with no further trades by the bots, we’ve been focussed on our primary model work.

So, how are the bots performing? Well they may be holding tight with their positions but that doesn’t mean no PnL. The positions are moving in the correct direction despite the upheaval in the market caused by the Bitfinex price dislocation. For those not familiar with the cryptocurrency markets, Bitfinex, one of the leading exchanges has been forced to suspend withdrawals in Fiat currency (non cryptocurrencies). This has led to a significant price dislocation as customers try and move their money out using Bitcoin instead. This article provides a good background on the circumstances and impact of this suspension.

Performance of the models as of last night:

CurrencyStarting BalanceUSDCryptoRateUSD EquivTOTALGain/loss
Ether Classic$203.00$0.0075.471698113.4$256.60$256.6026.41%

Thanks for reading – I’ll try and post a longer piece will more design details over the next few days.

— Wintermute —




Training Approach – High Level Overview

I thought I would take the opportunity of the long weekend to put down some of the design principles we use for the development of our model. In particular I will focus on unique aspects of financial market trading that perhaps make it more challenging than many AI problems to solve.
If we consider the usual problem space that an AI is used to address, the process is generally static. By this I mean that training examples can be drawn (within reason) historically and the underlying process can be considered not to change dramatically between the training set and the live sample.

This is, I agree, not strictly true…language does evolve over time and semantic change over the course of decades but the key here is we are talking about an exceptionally slow evolution of the underlying model.
Financial markets are entirely different.

The underlying process and the factors that influence the direction of the market changes over time – sometimes over a very short period of time. Any model to be useful needs to either model the state change when input parameters switch between relevant and less relevant or (the approach adopted by this team) have a fluid model structure that uses different parameters over time and evolves based upon changing market structures.
The challenge is to provide continual evolution without over-fitting due to excessive overoptimization.

In this blog post I’ll discuss the general approach adopted and then, in subsequent posts I’ll drill down into more detail on specific aspects of the overall model.
The first thing to highlight is that we don’t use a straightforward machine learning algorithm as the whole picture. We have 3 key elements that together make up the evolving AI trading models.

Step 1 is a process where from a seed pool of selected parameters, market attributes, market relationships etc. At the outset a very large population of candidate models is created; this population will, initially use random parameters from the pre-seeded pool. There is then a mutation process applied where a small number of these attributes are modified, combined and otherwise altered.

Step 2. Each model is then trained to trade the specified markets. The parameters of these models will be randomly selected using the prior GA process. If we are training on related markets we will often focus on just once model to cover all markets (this is the approach adopted for the cryptocurrency markets). This technique is especially useful when we are dealing with markets with limited data histories.
Step 3. Finally the resulting models with their results are cross analysed and the best models are selected. The selection criteria is a combination of performance and robustness against over-fitting. The best performing models are then combined using GA techniques and a new generation created which undergoes the same process…and so on.
Over time the model finds a set of models that perform best on the market as it stands at that point in time. The best candidate models are then used for trading the relevant markets.

That’s not, however, where the story ends. As discussed earlier the process of the underlying markets alters over time … the models must do likewise. This process defined above does not end with a live candidate set of models … new candidates are created continually and matched head to head with the live models. When they exceed performance on the market as it is now they are then replaced.
As you can see this makes prior performance less reliable as an indicator of future performance but with the benefit that the models continually evolve to match the market conditions as they currently stand.
Given our belief that markets are a non-stationary process then prior performance of any model, static or otherwise, is highly suspect so we believe this is a small price to pay.
I will drill into more details of the modelling approach over coming weeks.
Have a great holiday break…

— Wintermute —

All In on Cryptocurrency

Well … today our Bot has decided that cryptocurrencies are the way to go…After buying both Etherium and DASH we are now long all of the currencies except Ripple (XRP).
ETH Buy 101.94894900 @ 47.08239 (Cost of $4800)
DASH Buy 8.73700049 @ 69.81801 (Cost of $610)

CurrencyStarting BalanceUSDCryptoRateUSD EquivTOTALGain/loss
Ether Classic$203.00$0.0075.471698112.641$199.32$199.32-1.81%

— Wintermute —


And In Again…

Well, 2 days on and the Bot as decided to re-enter both the XMR and ZEC markets at higher levels than it sold out. While not unusual to see this behaviour, the trading is showing signs of being more aggressive and active than we originally expected. This isn’t a bad thing as such but, with the wide spreads and relatively high commissions in the cryptocurrency space we expected the models to learn a more longer term style of trading.
Buy 9.43388087 ZEC @ 63.80671 ($601.94 cost)
Buy 13.4139978 XMR @ 21.08162 ($282.79 cost)

The AI Bot is showing a gain of 4.16% over the 10 trading days so far – Perhaps aggressive and active is the way to go in this market 🙂

CurrencyStarting BalanceUSDCryptoRateUSD EquivTOTALGain/loss
Ether Classic$203.00$0.0075.471698112.67$201.51$201.51-0.73%

— Wintermute —

Our First Liquidations!

Today the bot has closed out 2 of its positions (unfortunately at a loss). Both ZEC (ZCash) and XMR (Monero) have been closed out at a loss. While disappointing, this behaviour is showing good learned behaviour to cut losses early…The overall portfolio is actually at it’s best level to date (+3.02%) which is not bad for 1 weeks trading activity – even in volatile markets such as the cryptocurrency markets.
Sell 10.27033000 ZEC @ 51.61008 = $601.94
Sell 13.41399780 XMR @ 19.38677 = $282.79

CurrencyStarting BalanceUSDCryptoRateUSD EquivTOTALGain/loss
Ether Classic$203.00$0.0075.471698112.75$207.55$207.552.24%

— Wintermute —

Things are Building Up

2 Days on and our bot has taken a position in two further markets, buying $610 of ZCash and $305 of Monero. The AI model is already showing signs of moving away from the original strategy seeding and learning a much more active style of trading.

Currency Starting Balance USD Crypto Rate USD Equiv TOTAL Gain/loss
Bitcoin $16,900.00 $0.00 14.7492717 1140 $16,814.17 $16,814.17 -0.51%
Etherium $4,800.00 $4,800.00 0 45.247 $0.00 $4,800.00 0.00%
Zcash $610.00 $0.00 10.27033 59.719 $613.33 $613.33 0.55%
Ether Classic $203.00 $0.00 75.47169811 2.793 $210.79 $210.79 3.84%
DASH $610.00 $610.00 0 75.405 $0.00 $610.00 0.00%
Monero $305.00 $0.00 14.58669 19.906 $290.36 $290.36 -4.80%
Ripple $510.00 $510.00 0 0.0358 $0.00 $510.00 0.00%
TOTAL $23,938.00 $5,920.00     $17,928.66 $23,848.66 -0.37%

Unfortunately we have now moved into a slightly negative position – the first since the start of the trial.

— Wintermute —

Trade # 2

Things are a bit busy so I’ve not been able to post any design details to date … I promise to get this done some time over the next month. Meanwhile our bot has executed Trade # 2, buying Bitcoin.
On 3rd April the bot purchased $16,900 worth of bitcoin, delivering 14.74927170 after commission – an effective rate of $1145.819.
Meanwhile ETC has moved against us down to 2.56117. Scores on the doors after todays trade are:

Currency Starting Balance USD Crypto Rate USD Equiv TOTAL Gain/loss
Bitcoin $16,900.00 $0.00 14.7492717 1151.21 $16,979.51 $16,979.51 0.47%
Etherium $4,800.00 $4,800.00 0 44.165 $0.00 $4,800.00 0.00%
Zcash $610.00 $610.00 0 59.8 $0.00 $610.00 0.00%
Ether Classic $203.00 $0.00 75.47169811 2.56117 $193.30 $193.30 -4.78%
DASH $610.00 $610.00 0 63 $0.00 $610.00 0.00%
Monero $305.00 $305.00 0 20.2148 $0.00 $305.00 0.00%
Ripple $510.00 $510.00 0 0.032 $0.00 $510.00 0.00%
TOTAL $23,938.00 $6,835.00     $17,172.80 $24,007.80 0.29%

Still a small net gain.

— Wintermute —

Our First Trade

Well the models have completed Stage I training and have sufficient performance to warrant live trading. We have turned them on and within 48 hours the first trade has been placed.

On 31st March 2017 the model purchased $203 worth of Etherium Classic. After commissions we received 75.47169811 ETC, an effective rate of 2.68975 (after commission).

Currency Starting Balance USD Crypto Rate USD Equiv TOTAL Gain/loss
Bitcoin $16,900.00 $16,900.00 0 1215 $0.00 $16,900.00 0.00%
Etherium $4,800.00 $4,800.00 0 49.65 $0.00 $4,800.00 0.00%
Zcash $610.00 $610.00 0 62.421 $0.00 $610.00 0.00%
Ether Classic $203.00 $0.00 75.47169811 2.82 $212.83 $212.83 4.84%
DASH $610.00 $610.00 0 72.352 $0.00 $610.00 0.00%
Monero $305.00 $305.00 0 20.232 $0.00 $305.00 0.00%
Ripple $510.00 $510.00 0 0.02128 $0.00 $510.00 0.00%
TOTAL $23,938.00 $23,735.00     $212.83 $23,947.83 0.04%