Balancer pools are essentially self-balancing index funds that are continuously rebalanced. This rebalancing happens through arbitrageurs who are incentivized to trade with pools, and by doing that they sync the pool prices with those on the external market.
Instead of investors in conventional index funds paying fees for managers to actively rebalance the funds, Balancer pools accrue fees for liquidity providers. Every time someone trades with a Balancer pool, a small fee is charged. If the prices oscillate and then return to the same initial point, liquidity providers end up with the same capital invested — since Balancer is a path invariant AMM if fees are not considered — plus trading fees paid by traders.
Recap of Trading Fees and Balancer Pool Types
Balancer pools are fully customizable and allow their creators to choose the trading fee they want (anywhere between 0.0001% and 10%). Private pools can have their trading fees updated any number of times while they are already being used by traders. They can for example be increased to take advantage of liquidity crunch times (think of Black Thursday). Trading fees of shared pools — similarly to all the other parameters of shared pools — however cannot be changed.
Fee Influence in Trading Frequency
The higher the fees in a Balancer pool, the less frequently traders will trade with that pool. This is a more obvious conclusion once you think of trading fees as the spread between the sell and buy prices a pool offers. If a 50/50 ETH/DAI pool has 1000 ETH and 200,000 DAI, then the spot price — without considering the trading fee — of 1 ETH would be 200 DAI.
Add for example a 1% fee to that and the buy price will be 200/0.99 ~= 202 DAI and the sell price will be 200*0.99 = 198 DAI. At any moment, if the external market price of 1 ETH goes beyond any of these two values, an arbitrageur will have the incentive to do an arbitrage trade and make some marginal profit.
The higher the fee, the less often the external market price will oscillate beyond the buy/sell spread and the more the pool will act like a holding strategy — since its balances do not change so long as there are no trades. The chart below helps us visualize the behavior of a pool with a mean spot price (midway between buy/sell spread) of 200 DAI per ETH and a high fee of 10%.
Swing Trading With High Fees
If prices move significantly, even pools that have high fees like the 10% example above will eventually be used by arbitrageurs for marginally profitable trades. From now on, let’s ignore retail trades with the pool and just consider arbitrage trades, since they’re more predictable in responding to market price fluctuations external to the pool. Consider the fictitious price fluctuation below that starts at t0. Bear in mind that all price values are for illustrative purposes only and are not exact.
At t1 the market price is equal to the buy price of the pool. This means that as soon as the market price goes marginally beyond that value, it will be profitable for an arbitrageur to buy ETH from the Balancer pool for 220 DAI/ETH and resell it for more on the external market. Arbitrageurs will keep buying from the pool and reselling on the external market until the price hits a peak at 235 DAI/ETH. The pool will have by then effectively sold some ETH for an average of around 228 DAI/ETH.
After the market reaches the peak at 235 DAI/ETH, the new buy and sell prices of the pool are about 235 and 195 DAI/ETH respectively. Between t2 and t3 there is not trade with the pool as the market price does not go beyond this price band.
Once we get to t3, arbitrageurs are incentivized to buy from the external price for less than 195 DAI/ETH and sell it back to the pool. This effectively results in the pool buying ETH all the way from 195 to 165 DAI/ETH, an average of around 180 DAI/ETH.
After that again no trades happen as the market prices oscillate within the new buy/sell price band of the pool after t4.
Back-Testing Performance of High-Fee Balancer pools
A very active Balancer community member — by the nickname of Rabmarut — was kind enough to run simulations back-testing this strategy. We compared 50/50 Balancer pools with ETH and USD (in the form of a perfectly pegged ERC20 stablecoin), all starting with a $10,000 value. The period considered and the results are shown in the chart below. The scripts used are open source and open for feedback.
For simplicity’s sake, only arbitrage trades were considered. The practical returns should therefore be better for low fee pools than simulated, as they allow for more retail trade than high-fee pools. Notice that under these assumptions, the pool with 10% fee (brown line) has the best results of all simulated strategies. The exact final values obtained with the simulation are:
- 100% ETH: $9,281.54
- 50/50 HODL: $9,640.77
- Pool with 0.3% fee: $9,693.63
- Pool with 5% fee: $10,135.54
- Pool with 10% fee: $10,361.74
Balancer pools offer different possibilities in terms of trading strategies for liquidity providers and pool creators.
Choosing high fees has the benefit of always buying low and selling high — as exemplified above — but comes at the cost of having a less active pool with much less trading volume, most of which made up of arbitrage bots. Lower fees generate a higher trading volume — as they are more appealing to retail traders seeking low fees — but at the same time less profit as the fees tend to zero.
These high-fee pools can be used as great substitutes to conventional index funds or treasury management strategies where there is no rebalancing until a certain maximum deviation from the nominal % allocations is reached. In other words, these Balancer pools will allow the actual value distribution to fluctuate around a desired basket before arbitrageurs step in.
We encourage experimentation not only around choosing static high or low fees but also with enabling dynamic fees which, as mentioned above, would be optimized by adapting to the market volatility. Balancer Labs will soon release a factory for creation of smart pools that will enable these experiments.
A huge shoutout again to Rabmarut, who helped with reviewing this article and creating the simulation that back-tested the performance of the high-fee Balancer pool.
Come Join Our Community
This and many other interesting ideas of how to use Balancer as a building block are being daily discussed on our discord channel. Please come join us and add to the conversation!
If you would like to get even more involved with Balancer, we are hiring. Please get in touch with the team on our discord channel.