The above image depicts where the "Max Spread Percent" setting is located in the Shrimpy application. This setting will be discussed in detail throughout this article.
Before we can understand the purpose of the spread control setting in the Shrimpy application, we must first understand what is spread.
In the above illustration, we see how limit orders are placed on the order book. We have bids on the left and asks on the right. The gap in the middle where there are no bids or asks is called the spread. When a new order is placed, it can either be placed as an open order, making you a "maker", or it can be placed on the opposite side of the order book to make you a "taker". Placing an order on the other side of the order book means the order will be instantly executed.
In the Shrimpy application, we currently always act as the taker. That means Shrimpy crosses the spread in order to execute a trade instantly. This allows us to systematically execute rebalances in a quick and predictable manner.
One setting that Shrimpy controls for automatically is the amount of spread Shrimpy is allowed to cross in order to immediately execute an order. If the user does not manually set a value for spread, Shrimpy will use the automated settings.
Inputting a value for the maximum spread percent control will mean Shrimpy will not execute a trade over a spread that is larger than that amount. So, if you set a spread of 10% for example, Shrimpy will not cross a spread that is more than 10%.
If there are multiple trades for a single asset during a rebalance, this setting will be checked before every trade. That means if the first trade during a rebalance was below this maximum percent, but the second trade was above, Shrimpy will not execute the second trade.
Caution: There are some assets which naturally have high spreads. For example, if an asset has a bid price of 6 Satoshi and an ask price of 7 Satoshi, placing a spread control of 10% would mean this asset cannot be traded with Shrimpy since this spread will always be more than 10%.
Additionally, setting extremely low spread controls, such as .1% will decrease the chance a rebalance will complete. That is because we won't place trades unless the spread is less than this amount (which might be unlikely for many assets).