100 Waves Bulletin #3
Tranching is a very powerful tool to reduce market noise impact on strategy performance. As I wrote in bulletin, it also implies making smaller changes to the strategy allocation, which in most markets is beneficial (smaller orders execute with less slippage). However, given the current high gas prices, and dutch auctions as the sole method of doing rebalancing to the Sets, small rebalancings risk being done at suboptimal price (it’s expensive for a market maker to take part in auction, especially when the auctioned sum of ETH or other asset is low).
With that in mind, I have to introduce some changes to the rebalancing schedule.
100 Waves ETH/USD Ether Hoard and 100 Waves ETH/BTC Ratio sets will switch to 2 tranches daily. Afternoon (UTC) time tranche will be postponed. Those sets will only rebalance if change to allocation is more or equal to 5%
100 Waves ETH/USD Dollar Yield is not changing the rebalancing schedule, but the minimum change in allocation required to start a rebalancing is set to 4%
The effect of these changes shouldn’t be very noticeable to the Sets performance.
Today, I’d like to introduce you to the concept of tranching. Tranching is getting more and more popular among systematic traders and funds. It boils down to dividing all equity managed by fund or strategy into a few chunks, called tranches and rebalancing those tranches independently, at different moments in time.
All 100 Waves sets switched to tranching yesterday. There are 3 tranches of the same size for each strategy (to be precise: one tranche will be slightly larger since as it will check signals for 34, not 33 sub-strategies), rebalanced according to a following schedule (UTC time):
- 100 Waves ETH/USD Dollar Yield: 6:58 / 13:58 / 20:58
- 100 Waves ETH/USD Ether Hoard: 7:58 / 14:58 / 21:58
- 100 Waves ETH/BTC Ratio: 4:58 / 11:58 / 19:58
Just remember that this doesn’t mean the strategy is trading more actively (and wasting more money on slippage). Even if strategy rebalances 3 times more often, each time no more (and often less) than ⅓ of assets are affected.
Why bother with tranching? There are several reasons, but the most important for me is that — in my opinion — trading should avoid relying on luck. Rebalancing the whole strategy only once a day means that we’re very dependent on price at just one moment in time. With tranches, we’re doing signal checks 3 times a day, and even if we’re unlucky with timing of one partial rebalancing, we won’t be unlucky with the remaining two.
It’s worth remembering that in the case of 100 Waves strategies, price determines not only, well, price, at which strategy will buy or sell assets, but also, what’s more important, whether strategy will be rebalanced at all and if yes, to what extent.
Let’s have a look at one recent example on the chart: 15th June. There was quite a drop during the day, ETH price went from $234 to $218. If the 100 Waves Dollar Yield strategy had rebalanced when price hit the bottom (yellow circle), it would sell all or nearly all ETH and for a very low price. Fortunately the whole drop was just temporary, and at the rebalancing time (blue circle) strategy sold just ¼ of its assets, for a much better price of ~ $231. What would happen if tranching was enabled? Something in the middle. More ETH would be sold (but not all), and the average price would be… average, somewhere between $234 and $218.
This is a very telling example. By tranching we’d avoid very bad luck of dumping all assets at the very low price, but, also, we’d lose the chance of doing what was the best during that particular day: selling as little as possible at the best possible price. There’s a lot of risk in the markets, so if there’s a way to mitigate the risk of rebalancing at the worst moment during the day, I’m going for it, while being fully aware that avoiding bad luck comes at the cost of avoiding good luck as well.
All my backtests published at 100 Waves website (please visit if you haven’t already!) do not take into account tranching. I don’t want to get into details but doing 100% accurate test of tranched strategy is pretty hard and time consuming endeavour, so I skipped it. Am I just doing a pretty significant change blindly? Not at all. I’ve backtested each tranche individually. The outcome of those tests shows that performance differences between tranches are quite small (±3% annually). Actually, this was also an important test of robustness of 100 Waves strategies (if those strategies would only perform if rebalancing was done at midnight UTC, it would be a very bad sign!)
There’s also one other aspect of tranching, which I’d like to mention just briefly. With tranches, the amount of assets bought/sold each time the strategy is rebalancing is smaller. So you can also think of tranching as an alternative to TWAP auctions, which were introduced by Token Set team recently (a better alternative if you ask me).
But wait, there’s more! One internal change which I’m introducing alongside with tranching is the new medianizer module. Until now, all strategies checked market prices at one of the centralized exchanges and used that prices to calculate signals. There was also a backup exchange in case the primary one didn’t respond. Now least five exchanges are checked, and strategy uses median price. This not only is far more reliable (any 3 exchanges out of 5 has to be responding) but also prevents theoretical situation when some exchange is in fact working, but reports some weird price (eg. because of some kind of bug or attack).
Short look at the market: For the last 3 weeks ETH price fluctuates between $225 and $250, and ETH/BTC ratio is also in a very tight, sideways movement, making June another difficult month for trend following strategies. We can be sure, however, that when price will break out (hopefully upwards!) for this range, the allocation will be appropriate, and we’ll ride the next 🌊