This bot builds upon the original Market Maker bot and introduces the ability to place multiple simultaneous buy/sell orders on both sides of the order book. In addition, it can optionally be configured to skew orders on one side of the book to be larger than the other. This is useful if you want to slowly offload or acquire inventory, or simply wish to maintain a 50/50 split between your base and quote asset values. Inventory Skew is explained further below.
How the strategy works
Once the bot is started, it will immediately send all orders as limit orders - buy orders below the mid price, and sell orders above the mid price. The distance between each buy order and each sell order can be specified individually. Additionally, the size of each consecutive order can be increased by specifying the "Order Step Size".
The mid-price is calculated as follows:
Mid Price = (Best Bid + Best Ask) / 2
The buy and sell prices for the innermost buy and sell orders are calculated as:
Buy Price = (Mid Price * (1 - Distance Between Buy Orders - Maker Fee)
Sell Price = (Mid Price * (1 + Distance Between Sell Orders + Maker Fee)
Similarly, each subsequent buy and sell order is offset from the previous by the same distance. A profit is realized when the quantity sold is equal to the quantity bought.
Once an order is filled, the bot will wait for the specified amount of time (Order Replenish Delay) before canceling all remaining orders and sending a new set of orders to repeat the process.
How to configure Market Maker Plus
Configuration Name: A name/label for this configuration. You can copy and modify a configuration to run this bot on multiple markets simultaneously.
Exchange: The exchange to run this bot on. This bot cannot be backtested as it leverages a real-time strategy based on order book data.
Account: The exchange account to run this bot on.
Number of Orders: Total number of orders to place. For example, entering 20 will place 10 buy orders and 10 sell orders.
Order Start Amount: The amount you wish to use for the first buy and sell orders. In the example above, the order amount for the first (innermost) buy and sell order will be 10. Click here to view the minimum order size guide.
Order Step Size: The amount to increment each consecutive order after the first one on each side. In the example above, the second buy order size will be 12, the third 14, and so on. The same applies to the sell-side.
Distance Between Buy Orders: Percent offset (in decimal form) for the first buy order from the midpoint. The same distance is applied between the following buy orders.
Distance Between Sell Orders: Percent offset (in decimal form) for the first sell order from the midpoint. The same distance is applied between the following sell orders.
Order Replenish Delay: Time (in minutes) to wait before canceling unfilled orders once an order has been filled, and submitting a new set of orders.
Maker Fee: The maker fee (for limit orders) is charged by your exchange. This fee is used to adjust the buy/sell prices to ensure the fee is covered before profit is made.
Inventory Skew: Whether to enable Inventory Skew. Use the Inventory Skew Calculator to see how order sizes can be skewed to target a certain base/quote ratio. Feel free to make a copy of this spreadsheet to try out different values for input parameters and see how they affect order sizes.
Target Base Percent: The proportion of base asset value to target. For example, if the value of your base balance is currently 40% relative to total (base balance value + quote balance value), and you wish to acquire more base asset to achieve a 50/50 split, entering 50% will adjust the order sizes so that there is more quantity being bought than sold until an equilibrium is reached.
The goal of this strategy is to provide liquidity to the market, and earn a small profit on the bid/ask spread each time your orders are filled. For this reason, it is ideal to trade markets where the bid-ask spread is wide (0.05%+) and there is sufficient daily trading volume.
Secondly, whichever pair you choose to trade, be sure that you are comfortable holding both the base and the quote asset for the duration that the bot is running.
And finally, this bot is not limited to trading a range-bound market, we can trade uptrends or downtrends just as easily. Simply adjust the buy/sell thresholds to skew in the direction of the trend.
A sufficient balance is required for both the base asset and the quote asset. Insufficient balance in either asset will result in no orders being placed, which will be shown in the logs. We recommend having an additional 10-20% available balance for each side as a buffer.