Last week we published a post describing the introduction of our first token utility, which allows COFI holders to stake 25k tokens for access to the CoinFi Trading Signals beta.
It’s been exciting to see users staking their COFI tokens in order to get access:
In fact, COFI stakers are now collectively the 11th largest holder of COFI tokens on the blockchain!
As of this writing, beta users have staked 2,960,622.9548 COFI tokens for early access to CoinFi Trading Signals, which is 1.685% of the circulating supply of COFI.
The tagline for our signals is “Professional trading signals backed by data science”, so this month we thought we’d share some of the data science underlying these trading signals.
Of course, this is just the tip of the iceberg, but hopefully you’ll have a better understanding of how we work to provide you with useful trading signals.
Trading signals that are attractive and predictive
At a high level, we’re interested in trading signals that 1) CoinFi users want, and 2) enable better trading decisions. It’s important to note that these two are not necessarily the same thing.
There could be examples of signals that users want, but that ultimately have no correlation with price. And vice versa – there might be signals that users are not aware of, but that would enable better trading decisions if you had access to them.
Because of this, we follow two parallel (although not independent) routes to help us decide which trading signals to ship. However, our main focus in the early stages is on signals that are both attractive to users AND predictive of price change.
Later on we will also spend time researching predictive signals that our users might not have considered.
In order to find out what users want, our Product Manager Joe has been spending a lot of time talking to you – our users. For this status update though, we’ll focus on how we test for predictiveness of signals.
The Signal Factory
To test the predictive power of signals, we employ what we have called the Signal Factory. This is our internal tool for quickly backtesting signals on historical data. Specifically, we run our signal datasets through a battery of tests at multiple granularities (daily, hourly, minute), and we measure things like win rate, portfolio returns, etc.. Naturally, we also test for significance (using both Bayesian and frequentist approaches). The basic idea is to test: if a signal triggered at time t, would it have predicted a price change at time t+n.
The purpose of the Signal Factory is in essence to speed up the build-measure-learn cycle. But it also ensures consistency in the way we backtest signals, allowing for comparable metrics on the same data.
We have also started experimenting with black-box methods where we combine vast amounts of signals and leverage machine-learning methods such as deep neural networks to make predictions about the future.
However, these are of second order priority. In this early stage, we’d like to be able to communicate exactly why a signal triggers. Optimizing evaluation metrics is important – but this isn’t everything. Communication around our signals is just as important in winning the trust of our staked users.
Examples of Backtesting Results
We will soon be sharing a “CoinFi Research” section where you can read about the backtesting results of our trading signals, but here are some teasers from our backtesting results so far.
ETH to/from exchanges
This was one of the first signal areas we started looking at. As with all our signals, we have to get very specific and think about how exactly to quantitatively express an hypothesis like “ETH moving into (or out of) exchanges will be a leading predictor of ETH price”.
For instance, you might express this as:
- Number of ETH transactions
- Total volume of ETH transactions
- Number of ETH transactions larger than X ETH
- Number of distinct wallets sending ETH
… and so on.
The nice thing about our Signal Factory is that we can express all of these different variants, and then backtest them all on historical data. This way we let the data decide what is the best way to describe exchange movements. Each specific instantiation of a signal, we refer to as a parameterized signal.
We will typically backtest every single parameterized signal, since this is a fully automated and scalable process. We can then pick the top signals based on win rate, portfolio returns etc. and study those more carefully through deep-dive analyses.
Here’s an example graph from a deep-dive we did to understand the dynamics of the price during the 48 hours after a signal triggers:
The blue line is the indexed averaged ETH price on days when the signal triggered. The orange line is the same but for days when the signal did not trigger. The “hour” x-axis is relative to when the signal triggered.
In brief, the graph above shows that the price has historically decreased within the first 24 hours of the signal triggering, but then recovered within 48 hours. In other words, this signal might be useful for selling quickly – or for buying the dip – depending on your trading style.
Here you can see how the signal has triggered historically, overlaid on the ETH price:
BTC and ETH as leading indicators for other coins
We can’t expect all of our backtests to result in predictive signals. In fact, the majority of the signals we tests will not pass our bar – this is not supposed to be easy! But failed experiments are not failures – they still give value to our users as long as we communicate our learnings.
One example of this is BTC and ETH as a leading price indicators for other coins. Through Granger causality tests we found that e.g. BTC used to be a decent predictor for the ETH price, but this relationship broke down approximately around February this year, as you can actually see visually here:
There is also a chance that the relationship hasn’t actually disappeared. It could be that the latency of the signal has simply gone down, as more bots and professional traders have entered the market.
Regardless, the conclusion for us here was that we will not implement a “BTC as a leading price indicator” signal – despite this being a suggested signal. Even if BTC might be a brief leading indicator, it would require close to real-time trading actions, which our core users are not really doing.
Whale token movements
Another signal that many users get excited about is whales moving their tokens. We track every single transaction happening on the blockchain for more than 1100 ERC20 tokens. This means we can alert our users whenever we see notable transactions.
The tricky thing about this one is that it’s hard to find consistent patterns across all tokens. So instead of trying to look for an elusive “unified whale token signal” through backtesting, we decided to simply let you watch tokens you’re interested in, and we’ll notify you whenever we see a transaction that’s in the 99.9th percentile going into an exchange.
Interestingly, we found that in some cases, when token centralization (% of supply held by top 100 wallets) goes up, the price goes down in the short term. You can see this in the case of OmiseGo historically:
Two explanations might be:
1) Retail investors (small wallets) were buying early on (this will decrease centralisation), and then increasingly selling from May 2018 onwards (increasing centralisation)
2) Whales (big wallets) were dumping around January (this will also decrease centralisation) and possibly buying back from May 2018 onwards (increasing centralisation).
Both explanations could be true.
OmiseGo is not the only token where token movements are correlated with price movements. Another example is Crypto.com (formerly Monaco), where you can see most peaks would have triggered a sell signal:
BTC margin long/short positions
One signal we have not yet concluded on is margin long/short positions. There’s a clear inverse correlation between short positions and BTC price, as this graph shows:
But in order to ensure this is actionable and understandable, we’ll spend more time figuring out exactly what kind of signal we want to trigger using this data.
What to expect going forward
We have been gathering huge amounts of data on the crypto markets this year. Just to mention a few areas, we have raw blockchain transactions, cryptocurrency news articles, social media posts, and exchange data ranging from orderbook snapshots to open-high-low-close-volume bars.
Importantly, we are able to combine all these data points via our coin master database, which we believe is the most extensive cryptocurrency database in existence.
As mentioned, backtesting individual trading signals is top priority right now, but we’ll soon move towards more machine learning, where we can truly leverage the abundance of data we have available. As an example, some early experiments leveraging deep neural networks to predict price volatility look promising.
We will continue both user-testing and backtesting all of our signals, in order to give users who stake COFI trading signals that are not just attractive, but also predictive.
If you’re interested in joining the trading signals beta, its not too late! Just head over here, click reserve my spot, and stake some COFI tokens.
A New & Improved CoinFi.com
If you’ve been following our monthly updates, you know that CoinFi News has been in closed beta for around 3 months.
While much of the data team has been focused on signals, CoinFi News is also nearing public release. If you haven’t had an opportunity to participate in the beta so far, you can expect to hear from us soon.
We also have some major updates to the CoinFi website in the works for the remainder of Q4
As always, stay tuned for further developments!