Trading Bot Guide
Updated: November 23rd, 2022
Last updated
Updated: November 23rd, 2022
Last updated
The Algodex Trading Bot allows users to automatically place orders onto Algodex and accrue ALGX rewards over time by providing high-quality liquidity. The bot currently uses Tinyman as a price oracle. Please refer to the ALGX Liquidity Rewards Program docs to understand how rewards get calculated before market making.
The bot is fully open source can be run via CLI or GUI. For CLI instructions please navigate to the Github repository. For GUI instructions, see below. The bot is hosted here.
Users connect to the bot with a wallet by clicking the “INPUT MNEMONIC” button. Afterwards, a second screen will appear where the user must import their wallet using the Mnemonic Phrase. Finally, the user will create a passphrase that allows them to quickly log into their wallet. This passphrase is stored locally, and if it is forgotten, users will have to clear and re-enter the Mnemonic Phrase.
Users will select an asset by entering an asset ID or an asset name and selecting the corresponding asset from the dropdown menu. It is recommended you enter the asset ID to ensure you market make on the correct asset. Please be cautioned that Algodex is not responsible for refunding users on lost funds from usage of the bot. To use the bot, a user must have both ALGO and the selected asset in their wallet.
Next, users will select an order size (in ALGO). Users can input an order size by using the numerical entry box or they can click and drag the slider. A notification will appear that will tell a user if they are eligible or are not eligible for ALGX rewards based on their current settings.
The order size is equal to the order size placed on one side of the market. For example, if a user is trading an Algorand Standard Asset (ASA) currently worth 0.50 ALGO, and the order size is set to 50, an order of 100 of the ASA and 50 ALGO will occur – totaling 100 ALGO. These amounts are supposed to be adjusted based on asset price changes.
Next, a user will select a spread percentage to place their orders at. Users can input a spread percentage in the numerical entry box or they can click and drag the slider. The spread percentage is defined as the percent difference between a users Bid and Ask order with the mid-market price. A smaller spread percentage will result in qualification for greater ALGX rewards; however, they are more likely to fill – therefore there is a trade-off between spread percentage and uptime. A notification will appear that will tell a user if they are or are not eligible for ALGX rewards based on their current settings.
Users will select the number of orders they would like to place on each side of the market. For example, if a user inputs the number 2, then 2 bids and 2 asks will be placed for the selected asset. Users can input an integer in the numerical entry box or they can click and drag the slider.
Advanced options are not necessary to configure. The default setting for Nearest Neighbor Keep is half of the spread percentage. It is not recommended to adjust these settings unless you are an experienced market maker.
Nearest Neighbor Keep allows a user to select the tolerance of the bot regarding cancelling and replacing orders as the selected asset's price changes. This setting is based on the user's specified spread percentage. If a user’s current order is not within the percentage set for Nearest Neighbor Keep, the bot will not cancel and replace until the selected asset price goes above the threshold set. For example, if a user has a spread percentage of 1.0%, and a Nearest Neighbor Keep of 0.5, then the asset price change threshold is 0.5% - meaning that the price of the selected asset must move at least 0.5% before an order is cancelled and replaced.
To start the bot, simply press the “START BOT” button.
To stop the bot, simply press the “STOP BOT” button.
The logs list will populate with information on each placed and cancelled order.
Users can change the logs settings to specify how many messages they would like to view. This is done by entering a number in the numerical entry box or clicking and dragging the slider. This defaults to 1000 messages.