John McAfee crypto recommendations were total bullshit. Let´s see the numbers

What if you followed his investment advice?

Mario Chamorro
7 min readNov 20, 2018

Remember when John McAfee was a celebrated crypto expert and was so kind to give all of us his crypto recommendations for free? What a generous man!

It was almost one year ago. He says that he needs at least 18 months to see the real return from his recommendations, but it’s been almost 11 months now and it doesn’t seem that things will get any better.

McAfee crypto investment strategy

There was a time when this guy was respected. He built and sold an antivirus empire and he was very active promoting unpopular libertarian ideas. But, at least for me, things suddenly changed when he started promoting shitcoins for a price. It was never proven, but there are ever rumors that he was earning up to 25 bitcoins per shitcoin recommendation (more than $200.000 back in December 2017 when he started with his recommendations).

For the analysis I will not consider all his crypto advice. Let’s just focus in his Top 10 coins based on on the the following link: 20 McAfee Coins — John McAfee’s Cryptocurrency Picks. I have also included his originals tweets so you can see all his real messages and the reasoning for his “advices”.

So, let’s start.

The analysis

It is quite simple: We will just get the price of the coins John McAfee recommended based on the closing price published by Coinmarketcap on that date and then compare with the current price.

It is true that his recommendations (especially the first ones) instantly made the price surge so we I may have considered the closing price on the previous day, but global figures are not very affected by that and, being realistic, almost everybody who followed McAfee recommendations bought the coins at the pumped price, so I will focus on the closing price to calculate the total return.

The code

The analysis consist of 3 steps:

  • 1. Scrape the historic prices for all coins
  • 2. Obtain price at the recommendation date and current price
  • 3. Calculate the current return

It is easy to manually download the full csv from the specific coin historic price section (i.e. here for bitcoin), but let’s try to automate the full process with Python. We will need BS4 for the scraping, Pandas for the organization and analysis and matplotlib to prepare the charts.

All the code is available in GitHub.

1. Scrape the historic prices for all coins

As we also want to have a complete chart of the evolution of the recommended coin, we will gather all available historic prices through Coinmarketcap.

# Import the required libraries%matplotlib inline
import urllib
import pandas as pd
import datetime
from bs4 import BeautifulSoup
import matplotlib.pyplot as plt

We will just focus on the mentioned Top-10 crypto recommendations. The selected coins are the following ones:

shitcoins = (“electroneum”, “burst”, “digibyte”, “reddcoin”, “humaniq”, “tron”, “factom”, “dogecoin”, “stellar”, 
“syscoin”)

Some required inputs before scraping the information:

today = datetime.datetime.today()
year = today.year
month = today.month
day = today.day
initial_date = datetime.datetime(2011, 1, 1)

Let’s scrape:

for shitcoin in shitcoins:
print("Cryptocurrency: ", shitcoin)
url_today = (str(year) + str(month).zfill(2) + str(day).zfill(2)) #Usamos zfill(2) para dar valor 01 al mes 1
source = "https://coinmarketcap.com/currencies/" + shitcoin + "/historical-data/?start=20110101&end=" + url_today
print(source)
page = urllib.request.urlopen(source)
soup = BeautifulSoup(page, "html5lib")
elapsed_days = (today - initial_date).days
datos = soup.findAll(class_="text-right")[6:elapsed_days]

Date = []
Open = []
High = []
Low = []
Close = []
Volume = []
MarketCap = []
# Obtain daily price, volume, market cap, etc.
for kpi in datos:
cells = kpi.findAll("td")
Date.append(cells[0].find(text=True))
Open.append(cells[1].find(text=True))
High.append(cells[2].find(text=True))
Low.append(cells[3].find(text=True))
Close.append(cells[4].find(text=True))
Volume.append(cells[5].find(text=True))
MarketCap.append(cells[6].find(text=True))

# Create dataframe and append scraped data
data = {"Date" : pd.to_datetime(Date),
"Open" : Open,
"High" : High,
"Low" : Low,
"Close" : Close,
"Volume" : Volume,
"MarketCap" : MarketCap
}
frame = pd.DataFrame(data)
# Save dataframe as csv
frame.to_csv("prices/" + shitcoin + ".csv")

2. Obtain price at the recommendation date and current price

Panda’s loc function is optimal for this task:

recommendation_price = df.loc[df['Date'] == recommendation_date]["Close"].values[0]
current_price = df.loc[df[“Date”] == today][“Close”].values[0]

3. Calculate the current return

Just calculate the total return of McAfee’s advice based on the closing price when the recommendation was made and the current price:

total_return = (current_price / recommendation_price) - 1

Combining everything and plotting charts

To speed up the process we can define a function that will help us with the analysis of any coin just giving as inputs the coin name and the date McAfee made his recommendation:

def create_graph(shitcoin, recommendation_date):
df = pd.read_csv("prices/" + shitcoin + ".csv", usecols = ["Date", "Close"])
df['Date'] = pd.to_datetime(df['Date'])
df.sort_values(by = ["Date"], ascending = True, inplace = True)

# Get some relevant data
today = datetime.datetime.today()
year = today.year
month = today.month
day = today.day
recommendation_price = df.loc[df['Date'] == recommendation_date]["Close"].values[0]
today = str(str(year) + "-" + str(month) + "-" + str(day - 1)) # In reality it's yesteray price
current_price = df.loc[df["Date"] == today]["Close"].values[0]
total_return = (current_price / recommendation_price) - 1

# Obtain coordinates for positioning the annotation
max_price = df["Close"].max()
annot_text_pos = ( recommendation_price + ((recommendation_price / max_price) * 0.1))
curr_annot_text_pos = ( current_price + (( current_price / max_price) * 0.5))

# Draw chart
plt.plot(df["Date"], df["Close"])
plt.xlabel("Date")
plt.ylabel("Price")
plt.title("Shitcoin: " + shitcoin)
plt.rcParams['figure.figsize'] = [8, 4]

# Write annotations and show arrows
plt.annotate('McAfee tweet. \nPrice: ' + str('{0:.4f}'.format(recommendation_price)),
xy=(recommendation_date , recommendation_price),
xytext=(recommendation_date , annot_text_pos),
arrowprops=dict(facecolor='red', shrink=0.05))
plt.annotate("Current price: " + str('{0:.4f}'.format(current_price)),
xy=(today , current_price),
xytext=(today, curr_annot_text_pos),
arrowprops=dict(facecolor='red', shrink=0.05))
# Print some KPIs
print("Shitcoin: " + shitcoin)
print("Recommendation date: " + recommendation_date)
print("Recommendation price: " + str('{0:.4f}'.format(recommendation_price)))
print("Current price: " + str('{0:.4f}'.format(current_price)))
print("Total return: " + str('{0:.2f}'.format(total_return * 100) + "%"))

# Save the chart as png
plt.savefig(shitcoin + ".png", dpi = 300, bbox_inches="tight", pad_inches=0.5)

The previous function will prepare a nice chart with the historic coin prices adding also a note and an arrow on the dates McAfee made his recommendation and on the current price.

Let’s execute the function for Electroneum, a coin recommended by McAfee on December 21st 2017:

And now, let’s see the complete analysis on the mentioned Top-10 coins recommended by McAfee.

Electroneum

  • Recommended on: December 21st 2017
  • Price at time of recommendation: $0.1091
  • Current price: $0.0095
  • Return: -91.29%

Burst

  • Recommendation date: December 22nd 2017
  • Price at time of recommendation: $0.054
  • Current price: $0.0056
  • Return: -89.63%

Digibyte

  • Recommendation date: December 23rd 2017
  • Price at time of recommendation: $0.0697
  • Current price: $0.0136
  • Return: -80.49%

Reddcoin

  • Recommendation date: December 24th 2017
  • Price at time of recommendation: $0.0153
  • Current price: $0.0015
  • Return: -90.20%

Humaniq

  • Recommendation date: December 25th 2017
  • Price at time of recommendation: $0.4978
  • Current price: $0.0134
  • Return: -97.31%

Tron

  • Recommendation date: December 26th 2017
  • Price at time of recommendation: $0.0.378
  • Current price: $0.0188
  • Return: -58.20%

Factom

  • Recommendation date: January 1st 2018
  • Price at time of recommendation: $64.81
  • Current price: $6.6
  • Return: -89.82%

Dogecoin

  • Recommendation date: January 8th 2018
  • Price at time of recommendation: $0.0150
  • Current price: $0.0024
  • Return: -84.00%

Stellar Lumens

  • Recommendation date: January 15th 2018
  • Price at time of recommendation: $0.5993
  • Current price: $0.2244
  • Return: -62.56%

Syscoin

  • Recommendation date: January 22nd 2018
  • Price at time of recommendation: $0.6506
  • Current price: $0.0498
  • Return: -92.35%

Summary: I hope you didn’t follow McAfee advice

The chart above shows the summary of returns on McAfee’s recommendations. Trying to be as objective as possible, it is also true that the market has plummeted since late 2017 / early 2018, and even strong cryptocurrencies like Bitcoin or Ether have strongly declined.

In any case, I expected that an expert like McAfee would be able to get slightly better returns!

TTThank you for reading, and I hope you found it useful. If you liked it, please consider subscribing to Gray Matters 🧠, the weekly newsletter I co-write with Joan Gamell where we discuss Productivity, Tech, the New Normal, and everything in-between.

--

--

Mario Chamorro

Management Consultant at MDF Partners. Tech, finance and bitcoin enthusiast. Moto traveler. Writing http://graymatters.substack.com 🧠 with @gamell