When you should consider buying and selling Bitcoins
Tags: Trading, Ethereum, Cryptocurrency, Bitcoin, Investing

So what I did was pull all price and volume data, at 2 min intervals, for the past 14 days. This means data from Feb 13 (included) until Feb 27 (excluded), just for Bitcoin — I haven’t done other coins yet. And remember that we have two types of volume: trading volume24h and volume delta (which is calculated by: volume24(t)-volume24(t-1) ).

One more thing, I want to make a plot by the hour, but since we have 2min intervals, we need to calculate the average of all data points for their given hour. The end result looks like this:

On the left we have a table, where I’ve inserted the normalized averages, such that they are within the range [0,1]. By normalizing the data we can easily compare their trend/behavior (e.g. compare price and volume). Notice: our date and time corresponds to the UTC (GMT) timezone, so same is true for the “hour” field.

On the right I’ve drawn radar chart for our three (normalized) datasets. Orange is price (in USD $), blue is the trading volume24h and green is the volume delta. Notice that the radius on the radar goes from [ 0 at the center — to → 1 the outer circle ]. This corresponds to our [0,1] of normalized data. Where 0 corresponds to the smallest value, and 1 to the largest one. By looking at the three graphs, I noticed that there seems to be no relationship between price and volume delta. So let’s remove that one for now:

When comparing the price and volume24 we do see some interesting (and pretty obvious) things:

When the price is very low (=0.1 at midnight) then the trading volume24h is at its highest peak (=1).

When the price is at its lowest (=0 at 10:00) then the trading volume is quite low as well (between 0.4 and 0.5).

When the price is at its highest (=1 at 23:00) then the trading volume is pretty high but not highest (=0.8).

These are interesting facts from the observation, but they don’t help us much. So the next thing was to look at the times/hours themselves:

The price is highest at 23:00

The price is lowest at 10:00

The price is very low at 00:00 (midnight)

This got me quite excited, because I can use these finds to create a super simple/dumb trading strategy. The strategy is as follows:

Buy when the price is lowest (at 10:00)

Sell when the price is highest (at 23:00)

A few minutes later I added a new backtesting strategy and started running tests. The first ROI result I obtained was similar to the one you can obtain from the graph above. However, our backtesting system enters a buy/sell trade for 100%, so it uses all its resources for the buy/sell trade. So in our case, if it enters a buy it will do so when the click strikes 10:00, and then it won’t do anything until 23:00 to sell.



A few more things before I post the results:

The charts above were generated from data within a specific date range (13Feb until 27Feb), so they are only true for this respective range. But I wanted to see how this trading strategy would perform outside this range as well. Since our system enters using 100% of the resources in a single shot, we need to create two experiments: one where it enters a trade at its lowest point, and another one where it enters at the 2nd lowest point (at midnight that is).

This is what I’ve obtained from the backtests:

The first data column is “Date”. This indicates until which day (excluded) the backtesting was done. Each backtest spans over 14 days and ends in the indicated Date value. So e.g. 27/feb means from 13 Feb (included) until 27 Feb (excluded) [this is the same range of data as for our previous radar charts].

The second and third columns are the ROIs obtained from the backtesting system. There are two columns, each representing a different experiment, the first one is the one that enters a buy trade at 10:00 (lowest price); the second ROI is from trades entered at midnight (2nd lowest point).

On the right I’ve drawn a 2D-column chart showing both ROIs. The blue columns are from ROIs entered at 10:00, while the orange ones are from trades entered at midnight. What’s interesting is that the ROIs (on average) are higher for trades entered at midnight (which is the 2nd lowest point). This may be true in our case, but it does not mean it’s generally true. Remember that our system enters trades at exactly the given time, but it could be that the real maximum value is reached midway at 23:30. To make more precise calculations one would need to include not only the hour of the day, but also the minute of the given hour to obtain a clearer picture.

However, by looking at the ROIs, it’s pretty amazing to see such big numbers such as 42%! It’s even more mind blowing if we consider the fact that it only does one full trade cycle (buy+sell) per day. So the system only makes 14 buy+sells in total to get those ROIs. We also see something else on this chart, as time goes by the ROIs decrease. My initial thought was that the price of BTC dropped in March, compared to what it was in February, but that appears to be false:

We clearly see that the price in March is increasing, except for March 6 where it started dropping again. I don’t want to spend too much time figuring out what happened to the ROIs, but here is what I think most likely happened: We are running backtests within a 14day window, and from the ROIs we see that they plunge from March 1 onward. So it’s quite likely that the trades between Feb 20 and Feb 26 are having a big impact on the ROIs, because during these periods there was a decline (as shown on the price chart), thus a big chance the ROIs are much lower because of these bad trades.

TL;DR

If you didn’t understand a word of what I just wrote, remember this: Buy Bitcoin either at midnight or 10am (GMT timezone) where it’s most likely to be lowest, and then sell it at 11pm where it’s most likely to be at its highest peak.

Have a great day! :)

- Ilya Nevolin