/
Launch Hummingbot Miner

Liquidity Mining Strategy (BETA)

Learn how to use Liquidity mining strategy


  WARNING:
This experimental strategy has undergone code review, internal testing and was shipped during one of our most recent releases. As part of User Acceptance Testing, we encourage user to report any issues and/or provide feedback with this strategy in our  Discord server or  submit a bug report

How it works

The liquidity mining strategy allows users to run market making bots on markets that are yielding liquidity mining rewards. This strategy offers diversification by running a market making strategy across different campaigns. It also provides better capital allocation by sizing orders based on target based allocation.

This strategy also provides easy setup and maintenance. Another key unique feature is dynamic spread adjustment on market volatility. This strategy has parameters like volatility_interval and avg_volatility_spread that automatically adjust the spreads based on a market’s volatility based on the historical mid-price.

Pre-requisites

Inventory

You will need to hold a sufficient inventory of quote and base currencies to place orders of the exchange's minimum order size.

Minimum order size

When placing orders, if the order's size determined by the order price and quantity is below the exchange's minimum order size, orders will not be created.

Basic Parameters

The following walks through all the steps when running create command.

exchange

The exchange where the bot will create and place orders.

Enter your liquidity mining exchange name?
>>> Binance


markets

Token trading pair symbols you would like to trade on the exchange.

Enter a list of markets (comma separated, e.g. LTC-USDT,ETH-USDT)
>>> ETH-USDT


  NOTE:
If participating in multiple markets, use the same base or quote asset. Different pairs without the same base or quote are not available at the same time

token

Choose between the base and quote asset wherein you want to provide liquidity.

What asset (base or quote) do you want to use to provide liquidity?
>>> ETH


order_amount

The order amount for the limit bid and ask orders. Ensure you have enough balance on base and quote tokens to place the bid and ask orders.

What is the size of each order (in ETH amount)?
>>> 0.008


spread

The strategy will place the order on a certain % away from the current mid-price. Spreads are automatically adjusted based on the volatility_interval.

How far away from the mid price do you want to place bid and ask orders? (Enter 1 to indicate 1%)
>>> 1


target_base_pct

It sets a target of base asset balance in relation to a total asset allocation value (in percentage value). The bot will then try to achieve this target by utilizing the inventory_skew feature.

For each pair, what is your target base asset percentage? (Enter 20 to indicate 20%)
>>> 20


order_refresh_time

Value in seconds of the orders’ duration before canceling and creating new sets of orders depending on the current mid-price and spreads at the interval. The default value for the parameter is 10s.

How often do you want to cancel and replace bids and asks (in seconds)?
>>> 10


order_refresh_tolerance_pct

Determines the tolerance threshold in percentage of the order price before replacing the orders. This is to prevent replacing the orders too often. The parameter has a default value of 0.02%.

Enter the percent change in price needed to refresh orders at each cycle (Enter 1 to indicate 1%)
>>> 0.02


inventory_range_multiplier

This parameter expands the range of tolerable inventory levels on your target base percent as a multiple of your total order size. Larger values expand this range. The predefined value is 1.

What is your tolerable range of inventory around the target, expressed in multiples of your total order size?
>>> 1


Advanced Parameters

volatility_interval

The interval, in seconds, in which to pick historical data from mid-price to calculate market volatility. The predefined value is 300s.

What is an interval, in second, in which to pick historical mid price data from to calculate market volatility?
>>> 300


avg_volatility_period

The number of intervals based on volatility_interval to calculate the average market volatility. The predefined value is 10.

How many interval does it take to calculate average market volatility?
>>> 10


volatility_to_spread_multiplier

This expands the average spread depending on the value set. The predefined value is 1.

Enter a multiplier used to convert average volatility to spread (enter 1 for 1 to 1 conversion)
>>> 1


Edit on GitHub