Pulse strategy
Strategy for volatile pools
Last updated
Strategy for volatile pools
Last updated
Pulse strategy will maintain a position for the wstETH-USDC Uniswap V3 pool with a 0.3% fee. This strategy utilizes an interval with a width of 4200 ticks. When the price of the wstETH-USDC pair approaches the current interval margin, the strategy automatically rebalances the liquidity to a new interval by swapping funds and providing liquidity to a new interval. If there is no need to rebalance, the strategy collects and compounds the fees into the current position. The strategy utilizes integration with 1inch, which leads to reduced swap fees for rebalances.
Rebalancing happens like this:
If the spot tick deviates from the weighted average over the last timespanForAverageTick seconds, then the transaction is reverted. Otherwise, the current position of the spot tick relative to the interval boundaries is checked.
If the tick is not farther than the tickNeighborhood to any boundary of the interval, then a new position is minted, the center of which is equal to the nearest tick on the tickSpacing grid of the given pool, and the width of the interval remains the same.
For the exchange of tokens, 1inch AggregationRouterV5 is used, the data for which is received by the bot off-chain and transferred to the rebalance function. After the swap, the received number of tokens is compared with the expected one. The swap price should not deviate by more than swapSlippageD, and the number of swapped tokens should not deviate more than by swappingAmountsCoefficientD.
A key feature of Olympus Pulse strategy lies in its ability to dynamically select the boundaries of the interval based on the values provided by the Olympus RBS, enabling the maintenance of an active position not reliant on manipulated market prices, but instead on the price limits set for the OHM token.
ImmutableParams
Name | Description | Value in strategy |
---|---|---|
MutableParams
Name | Description | Value in strategy |
---|---|---|
router
address of 1inch AggregationRouterV5
0x1111111254EEB25477B68fb85Ed929f73A960582
erc20Vault
address of buffer vault of the root vault system
0x749b85100D66525Eec385638b46bD3Ee590c0c79
uniV3Vault
address of vault that holds Uniswap V3 position
0x3D120987e85C1C294577a1c39C96693A6F9be97b
tokens
arrays of strategy tokens
[0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0, 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48]
priceImpactD6
Additional coefficient for expected price impact of swap of tokens
0
intervalWidth
Width of UniswapV3 position
4200
tickNeighborhood
Minimal required difference between tick and current position border to call rebalance
500
maxDeviationForVaultPool
If the spot tick in UniswapV3Pool deviates from the average tick by a larger value, then rebalance reverts with LIMIT_OVERFLOW error
50
timespanForAverageTick
The time interval in seconds used to determine the average tick values and prices in UniswapV3Pool
60
amount0Desired
Required number of tokens (wstETH in weis) that must be on the balance of the strategy to make a mint of a new Uniswap V3 position during the rebalance
1000000000
amount1Desired
Required number of tokens (USDC in weis) that must be on the balance of the strategy to make a mint of a new Uniswap V3 position during the rebalance
1000000
swapSlippageD
Permissible slippage level during swap
1000000000 (1.0%)
swappingAmountsCoefficientD
Permissible level of difference between the amount of expected tokens for swap and the exchanged ones during swap
1000000000 (1.0%)
minSwapAmounts
Thresholds that cut off swap of an insignificant amount of tokens (in weis)
[10000000000000,10000]