Indexing crypto

I think there is a prevailing agreement in this community that indexing approach to investing is the best when it comes to efficiency vs. simplicity, despite not everyone agrees that it is the most profitable approach. I was trying to apply this approach to investment in crypto assets and would like to share my results with the community. Looking forward to your critique.

I was searching for various existing crypto indices. First, there are some crypto indices from traditional financial institutions, for example:

Their composition is not completely clear from the first sight, and I didn’t dig further (there are some funds replicating these indices and one can look deeper into the composition of these funds), but they all seems to be market cap weighted. And if you think that 30% of basket capitalization in top 10 constituents is too much concentration, 40% in one constituent won’t amuse you.

There are further reasons why I disregard these indices. First, I think BTC dominance is too high and it is not justified by anything but the fact that it was the first crypto. So I expect that in the future BTC will be less volatile than other crypto, so in an optimistic scenario it will underperform. In a pessimist scenario it all goes to zero anyway. If I to invest in one single crypto, it would be ETH. And in fact I already have a strong ETH position of over 50% of my crypto portfolio - relative to its moderate size of few k, anyway.

Second, I find fees for investing in crypto in this way too high and not justified; and crypto assets were supposed to be an alternative to traditional financial infrastructure, after all. If I would have hundreds of thousands invested in crypto I might have thought otherwise, but now I don’t need it.

To summarize, there are crypto baskets available for investing via traditional financial infrastructure, and new ones appear every day.

Let’s look further.

Crypto20 index.
No stable and other pegged coins, “Management also seeks to generate additional yields through futures contract”. The maximum weight of a component is capped at 10% at weekly rebalancing, which is already good. Performance of the basket is tokenized and replicated by a single token C20, which can be bought pretty much like fund units.

However: I feel 20 components is somewhat too little, but after top 20 cryptos all other coins are below 0.5% in crypto market dominance, so why not. But then there are also some arbitrary (from my point of view) exclusions such as “XRP (pending SEC lawsuit that risks a liquidity crisis on reputable exchanges”. I understand they do it to protect and/or to please US investors.

To invest, one can open an account directly with the managing company. A counterparty risk, but only one counterparty. Transfer in of fiat and crypto assets is possible, and then there are fees coming.

One can also buy C20 token directly, but it is a ERC20 token listed on decentralized exchanges such as Uniswap, and (fixed) transaction costs for such an exchange are many orders of magnitude outside of my range.

So I had left it for now. After all, if I want a capped market capitalization weighted index, I can construct one myself.

The Crypto Currencies Index CCi30 is more a research project in applied finances, so to say. It has many interesting ideas which I like. There are 30 components and no exclusions based on some external factors.

"The number of constituents was set at 30 because it is the minimum number necessary to be statistically significant. The index statistically represents the entire cryptocurrency market with a confidence level of 99% and a confidence interval of 1.11. In other words, the margin of error of the index value as an indicator of the market is just 1.11%. "

“To calculate the weights for each cryptocurrency, the adjusted market capitalization must first be calculated. Market capitalization is not computed as some instantaneous number – the volatility in the cryptocurrency market is such that this would destabilize the index composition too much. Instead, the CCi30 uses an exponentially weighted moving average of the market capitalization. The weighted average Market Capitalization helps smooth the volatility to give the most accurate portrait of market capitalization at any given point.”

So weighting is more backward looking instead of “being current”, but it doesn’t have to be extremely precise anyway.

“The weight of each constituting cryptocurrency is measured by the square root of its adjusted market capitalization. The square root function was chosen as a hybrid that most accurately weights the constituents based on the current conditions of the cryptocurrency market. A simple market capitalization weighted index would be dominated by the top two cryptocurrencies, while a more slowly decaying weighting, or in the extreme case, equal weighing, would give too much weight to the tiny, illiquid cryptocurrencies at the bottom of the range.”

Weights of components (recalculated monthly) are available for free via a “Download monthly constituent weight percentages (.csv)” link. For January it has 18.8% BTC and 13.3% ETH.

They claim that there are products tracking this index, but I didn’t look for them. With 30 components one can replicated it relatively easy.

“CIX100 is a cryptocurrency index of the 100 best performing currencies. Diversify crypto assets with AI-powered neural network algorithm.”

When I read “AI” in relationship to (equity) investing, in my mind it translates into “high fees, random outcome”. Currently this index has 38% ETH and 30% BTC (yes, you read it right), sequence of other constituents by weighting is also only broadly correlated with a sequence according to market capitalization. So I wouldn’t replicate this index.

But it has an important advantage. A portfolio replicating this index is represented by one token CIX100. It is a ERC20 token, but it is listed on Kucoin. And it happened so that Kucoin become my main crypto exchange. So it is very easy for me to buy this token, spread is highish, but nothing prohibitive. I can also live with the fact that the composition of the portfolio doesn’t exactly correspond to my expectations: all crypto coins are highly correlated anyway.

For some time I was tempted to dump all my crypto portfolio into CIX100. Extremely tempted. But this would mean 100% exposure to a risk of two counterparties (exchange and token management). Furthermore, if you replicate a crypto index, you can do much more with “blue chip” coins than with an unknown token. You can split them between different exchanges and wallets, reducing counterparty risk. You can use them as a collateral for margin lending or generate extra money by stacking, lending, etc.

So I did following. I rebalanced my existing portfolio according to CCi30 weighting (leaving ETH as it is). Coins that can be transferred cheaply went into a crypto wallet. SOL, TRX, I stacked on chain. BTC, BNB and ERC tokens stayed at Kucoin and are used as a collateral or for yield generation.

Then I started a DCA bot that buys 1 USD worth of CIX100 every 4 hours. That will result in 180 USD per month, which corresponds well to how much I want to invest in crypto. Cash for investment is coming from regular transfers and margin loans, and I can also invest additionally in case of a major downturn.

I imagine my work flow as following. Probably at the beginning of a month, when new weights for CCi30 are available, I stop the DCA bot, sell all accumulated CIX100 tokens and rebalance the portfolio according to CCi30 weights. Then I start DCA again. In between I play around with extra yield opportunities, but neither sell nor buy any coins.

Well, that’s it for now. Looking forward to your comments!

1 Like

So a month have passed and what a month it has been! But with respect to this topic, following is relevant:

I keep using CCi30 as a reference index for my crypto portfolio. In comparison with the February composition, all components remained in the new March composition. I have been hesitant about what to do if one component is removed from the index: keep it as it is without increasing its position or sell? But looking into historical compositions I saw some coins which I never heard about and which were obviously a hype at some point but then went into oblivion. So for now my decision is to sell components which are excluded from the index.

Notably, XRP and LUNA moved forward to positions 4 and 5, while ADA and SOL went down to positions 6 and 7.

I rather quickly abandoned an idea to invest via the token CIX100. Its variation doesn’t correlate at all with the variation of crypto market as given by major coins as well as by some other crypto indices. What I finally started to do is to run a DCA bot at Kucoin which buys 1 USDT worth of BTC once per day. I have enough ETH, and I was considering running a bot buying 1 USDT worth of BNB every 3 days, but decided not to do it as well as not to manually buy even smaller amounts of coins. Meanwhile I even earned few dollars by lending and stacking coins.

Today, once a new index composition become available, I have stopped the DCA bot and added newly bought BTC to the main stake. Using weights of the components in the index and the value of BTC position as a reference, I calculated the target value of each component and rebalanced the portfolio accordingly. And started a new DCA bot buying BTC in the same way.

Well, that’s it. I might transfer in more funds in the course of a month, but will use it to decrease my USDT margin loan and not to buy more coins. Otherwise regularly and automatically buying small amounts of BTC and rebalancing other coins according to new weights at the beginning of every month seems to be sufficient.

I am very interested in this topic, I am currently invested in BTC, ETH and CHSB on SwissBorg. But the application has quite a few limitations in terms of availability of certain crypto-currencies.

I wanted to know how you set up a permanent and automatic investment with KuCoin ? I would like to try to do the same thing with the following configuration:

Invest 1$ every day in 10 crypto currencies that I would have selected, so 1$ for each crypto (10$ per day). This would result in investing $3,650 per year, or about $300 per month, which is my limit in this asset.

Does KuCoin allow for any kind of permanent order? Or do you need a program for that?

1 Like

They have own bots that you can configure from their app. A very nice feature. There are some bots that work with different crypto exchanges, also free ones, but their configuration is another level of complexity.

Yes, you can run 10 bots (one for each Coin/USDT pair) with these parameters. There is info that you can run max 5 bots, but it is probably outdated, as I was trying different things and had no limits on number of bots.

1 Like

And expensive fees :roll_eyes:

(a long overdue update)

March had passed, and, when it comes to crypto, I would say that nothing particular had happened. I was buying BTC at a rate of 1 USD per day. For other coins I was looking for opportunities to generate yield and rediscovered fixed term deposits at Binance. Many coins went into such deposit. On April 1st, when I wanted to get new CCi30 weights, I found that their website shows a database connection error and their index contains all kinds of minor coins. Unfortunately it was not a joke, because on early morning US time the website went on maintenance. And I have figured out that with the weighting scheme used by CCi30 I have to sell better performing coins, including those which are already deposited at Binance.

I already had thoughts about drawbacks of replicating CCi30 index, namely:

  • I cannot construct it myself and have to rely on a third party to provide the index composition.
  • The provided composition is only correct when a switch to it happens. The more time had passed since then, the stronger the current composition deviates from the nominal one.
  • I don’t want to be forced to sell coins for a regular rebalancing. During the accumulation, I want to only buy.
  • I felt that 30 coins is still not broad (or deep) enough. I want to buy every upcoming coin quite early by investing a very small part of my portfolio, well before its index weight reaches some percents.

This all had motivated me to create myself a market cap-weighted, or at least mostly cap-weighted, crypto index.

My starting point is There I take “Dominance” (in %) data for coins, which, at least for me, are easier to handle than “Market Cap” (in USD). To illustrate my approach, further I use dominance values as at the time of writing.

I exclude coins which value is “pegged” to other assets. Here is the list of such coins with the current dominance data as an example.

Now, if I look at current BTC dominance of 44.37%, it means that a plain market cap-weighted crypto index ex pegged coins should contain just a bit over 50% of BTC. Too much for my taste, so I started to look how I circumvent this problem.

First I thought about an index with capped (which means effectively a constant) weight of BTC and potentially ETH, and the rest should be market cap-weighted. But then there are open issues:

  • At which weight should I cap largest components? If for example the BTC weight is too low, the top coin(s) in the cap-weighted “tail” can have weights higher than BTC. I don’t want too much BTC, but I also don’t want to have an index that drastically deviates from the market cap.
  • Let’s say I choose now a BTC cap that produces a reasonable ratio between BTC and other coins. But how will it change in the future? Will I have to adjust this “fixed” weight? How? I would rather have a simple formula then sometimes have to adjust parameters based on I don’t know which criteria.
  • This is rather a practical issue, but still: as dominance is changing rather quickly, I would like to be able to just take momentary dominance data for two coins and calculate a momentary ratio between index weights of these coins. If I have a fixed BTC weight, I can calculate a ratio between index weights of BTC and any other coin only after I entered into the calculation table dominance data for all coins in the index. Which are changing while I enter them.

So I decided to look for another idea. Another option would be a constant ratio BTC to ETH. But the problem remains the same: what is a good ratio and how will it change in the future? It should be self-adjusting.

Finally I decided to use a solution used by the developers of CCi30 index: scale index weights according to the square root of the dominance, but only for the top coins. The rest is market-cap weighted.


Here is an illustration how I proceed with the construction of the index. First column is coins sorted according to the dominance from (second column), ex pegged. Second column is the change of dominance. For first three components, the dominance of the next component is less than a half of the previous one. This concerns BTC/ETH, ETH/BNB and BNB/XRP pairs. For these top components I employ an idea explored by the authors of CCi30 index: I adjust their dominance so that the proportion between their weights in the index is equal to the square root of the proportion of their dominance. For all further components the proportion between weights is equal to the proportion between the dominance. This adjusted dominance is shown in column 4.

Next question is how many components to take. For this I calculate the sum of dominances (original dominance, not adjusted) of the coins included in the index. The goal is that this sum is at least 95% of the total crypto market ex pegged coins. As I want to include in the index many smaller coins before they grow too big, I have introduced a second requirement: one third of components having lowest weights should contribute not more than 5% in the resulting renormalized index. And I can add few more coins to arrive to a larger drop of dominance. As capitalization change quickly in the crypto market, the order of coins is doing the same, so a dominance difference of only 1-2% is not that significant.

Then one should renormalize adjusted dominance to obtain the index composition (column 5). The index that was obtained this time includes 62 coins with BTC contributing only 25%; 45 components have a weight of less than 1%.

And now an update on some practical issues.

After being hit by the UST crash (the crash of LUNA I consider to be a normal market event), I liquidated with penalties many fixed deposits at Binance and transferred funds to KUcoin, where the main part of my portfolio is located. Some coins not available at KUcoin I was able to buy at FTX. Only few larger index components that provide good yield were left at Binance. Once these deposits will run out, I most probably will transfer them to KUcoin or find another yield opportunity, but now only with an instant availability.

At KUcoin, almost all coins are just sitting in the margin account providing a collateral for a margin loan. Currently I am comfortable with my loan being 50% of the holdings. If crypto continues to decline, I will add more funds to my crypto portfolio.

I don’t know yet how often I will reconstruct index and increase positions, but the idea is to do it not more frequent than once per week.

Did you check Thematics?

I’m waiting for it since they tease it :slight_smile: It can be interesting!

1 Like

why are you not just creating a rebalance bot on Kucoin and let it run?

I thought about it and I tried.

  1. One rebalancing bot at Kucoin works with maximum 12 coins. And honestly they are quite buggy recently, often I can’t run them in the app for days and weeks. Like now.
  2. The precision of weights is up to 1%.
  3. If you have coins in a bot, you can’t use them as a collateral for a margin loan.
  4. And most importantly, I don’t want to rebalance. I want to only increase positions until I decide to decrease them and sell a part of the portfolio. For me, this is what indexing is about.
1 Like