Tales from the Crypt: The Portfolio Re-calibration

  • Friday, 28 April 2017 16:22
Today we have decided to do a blog post a week, I have no clue for how long it will last but…. I have solid promises from Quynh Tran-Thanh, Paul Dobre and Antonio Madeira that they will help out with posts as well. Who knows, maybe chayter might join as well.For the past few months we have been scratching our heads over how to improve the portfolio management and I figured it would make sense to give a general overview of how we approached the task and what made us do it. The portfolio I’ll be using in this post is my crypto portfolio, it is public and you are more than welcome to check it out: https://www.cryptocompare.com/portfolio-public/?id=122First off, why do we even have a portfolio management tool?It all started last May (2016) when I wanted to keep track of my Bitcoins and Ether that I was slowly accumulating over time. I did a bit of research and couldn’t find anything interesting available. The only thing that came close to what I was looking for was Fabian Vogelsteller’s tracking tool that he built a while back. It was open source but it was not using our API and it was not streaming. My options were to either do a pull request and convert it to my API or to start over. I had a brief chat with Fabian on Skype and he said he would probably not invest a lot of time in the tool so I decided to do one from scratch.At first, everything was really simple, you could add a coin, an amount and a buy price and you could see how much your coin was worth and what your profit loss was. As I was mostly buying with BTC I was more interested in my profit loss compared to my buy price than I was in my profit/loss in the portfolio currency. I was basing all profit/loss calculations on the buy price and the current price in buy currency. This was just taking into account the coin’s value fluctuation compared to BTC but not the BTC-FIAT fluctuation as well.The portfolio stayed like this for the next 10 months. However, we saw a steady increase in numbers and members started asking for extra features. In February this year (2017) we decided to focus for a few weeks on the portfolio and to add more functionality. I was also getting ready to sell a few coins and there was no way to track that.The first thing we did was add a chart over time but to do this members would have to put in a buy date of the coin. We decided the simplest way would be to just default everyone’s buy date to the date they added the coin to the portfolio and make it a mandatory field from then onward. Luckily, I had just finished a big API rewrite that let me build the chart really easily from a data point of view.We launched the portfolio chart at the beginning of March and we immediately saw a big increase in users.The total portfolio stats over the last 6 monthsHaving the wind in our sails let me convince chayter and Quynh Tran-Thanh to give me another 2 weeks sprint slot and I started working on the ability to add and track sells. I struggled for a few days to figure out the best way to do it and because at the same time I wanted to also make it possible to let people encrypt their portfolios in the future. I decided the best approach would be to rewrite the back-end and split the pricing information from the coin data information (it was mostly a stalling tactic as I was not sure of the best approach to add sells). This way I would be able to ask for pricing and build all the stats and charts on the front-end even if your portfolio was 100% encrypted and only decrypted on the client side. Of course if we looked at the API requests, we’d still know what coins you have in your portfolio but we would not know the amount, the buy/sell date, where you keep them or even if you currently hold them or have already sold them.Top bar for the portfolioI was able to finish the coin sell functionality and the back-end rewrite by mid March. The general idea is simple, you have a Profit/Loss and a Realized Profit/Loss that just comes in when you start recording sales. The difference between your Acquisition Cost and Realized P/L is your total investment (in the picture above). I know that does not work for everyone but it is still a big improvement. We have a lot of other plans with the top section and we are planning to allow people to record cash positions as well, but that will be coming in the next update.Everyone else in the team was really excited as well and started brainstorming ideas for even wilder functionality. In the end we decided to have 3 tabs at the top of each portfolio:The Overview Tab — it is meant to show you general stats and a simple open positions chart and a profit loss chart. The idea was that the open positions chart would see spikes and dips when you bought or sold coins but the profit loss would just show you your daily profit/loss and it would not see the same spikes.The Portfolio Overview TabThe Risk Analysis Tab— it is meant to show you where you are exposed. The calculations here are mostly the work of Quynh Tran-Thanh. The Wallet/Exchange Exposure is quite obvious, the idea was to encourage our users to keep their cryptos in their wallets and to only move them to exchanges when they want to trade. The Crypto Exposure only shows you how much of each coin you have as a percentage of your total portfolio. It’s meant to encourage you to diversify — pretty straightforward we think. The bottom two pie charts I think are really cool. The Liquidity Exposure tries to predict based on monthly volumes how long would it take you to sell your portfolio and it’s meant to give you a snapshot of how liquid the coins in your portfolio are. The Volatility Exposure looks at how volatile your portfolio has been the the last month and tries to encourage you to have a mix of stable and volatile cryptos.The Portfolio Risk Analysis TabThe Advanced Chart Tab — it is meant to let you do more advanced analysis on your portfolio returns and it brings to you some of the tools hedge fund managers have at their disposal. This was again mostly an effort by Quynh Tran-Thanh and chayter. It has all the standard portfolio stats: Stdev, Correlation, Beta. It also gives you the ability to compare your performance to one specific coin, to see your portfolio volatility over time, to see your buys/sells on the chart and value of your portfolio compared to your acquisition cost.The Portfolio Advanced Chart TabAfter implementing all of this for most of March and then bug fixing and making adjustments in April we think the portfolio is a lot better now. I also managed to squeeze a 1 week sprint to implement public portfolios (https://www.cryptocompare.com/portfolio-public/#/overview).Paul Dobre, as always, did an amazing job with the design and we have seen quite a few people using it. Of course, Antonio Madeira helped a lot as well, both with testing and with the most amazing guides we could ask for (https://www.cryptocompare.com/portfolio/guides/#/overview)We are now slowly moving on to other projects but I know we have at least 3 more big things to add the the portfolio before I’m happy with the project:The option to encrypt portfolios and we just store them as a blob on our servers. This way you have as much privacy as possible.The option to add cash holdings and link them to exchangesThe ability to link a purchase to the individual exchange price not to our average price.It’s been quite an effort from our team and I hope it’s useful to you, it has definitely made my portfolio management a lot easier.The Portfolio Re-calibration was originally published in Tales from the Crypto on Medium, where people are continuing the conversation by highlighting and responding to this story.

Additional Info

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.

Disclaimer: As a news and information platform, also aggregate headlines from other sites, and republish small text snippets and images. We always link to original content on other sites, and thus follow a 'Fair Use' policy. For further content, we take great care to only publish original material, but since part of the content is user generated, we cannot guarantee this 100%. If you believe we violate this policy in any particular case, please contact us and we'll take appropriate action immediately.

Our main goal is to make crypto grow by making news and information more accessible for the masses.