Backtest Bot Administration
The ‘Backtest Bot Administration’ category contains all aspects related to ‘backtesting bots’.
Backtesting bots are bots which simulate the behaviour of live bots, but on past trading data, using imaginary money.
Backtesting works by using old pricing data collected by BravoBot to go back in time and trade as if the bot was running back then. This helps the user understand how good their strategy is against historical data.
Backtest Bot Control Panel
The backtest control panel is where the user is able to get an overview of their backtest bots, as well as control them, and create new ones. In the top right of the page is the creation button, next to it is the refresh button which will update the page without refreshing the entire website.
Under the aforementioned buttons, four cards with general information is found. This general information cards, include the total number of backtesting bots created, the number of bots that are currently running, the number of bots that are currently stopped due to an error, and the number of reports (more on this later) generated by the bot.
Backtesting bots are able to be copied over to live bots, by selecting a live bot, and then clicking on the ‘Copy to Live Bots’ button found under the ‘Controls’ menu.
Creation of a Backtest Bot
Backtest bots require some housekeeping information, this includes a name, an imaginary wallet size, a fixed buy order size, and a backtesting length. Since backtesting bots do not use actual BUSD to trade, the user can enter any amount of BUSD they wish the bot to backtest with. The backtesting bots do however adhere to the minimum requirements set by Binance. Thus, we recommend that at minimum, your fixed order size be at least equal to 15 BUSD. As, Binance has minimum limits in place for order sizes.
Fixed Buy Order Size
The buy order size is what percentage of the wallet the bot will use. If the user is using a simple stop loss and take profit strategy then this can be 100%, however, if they wish to use the grid trading strategy this percentage will be used per grid level. For instance, a fixed buy order size of 2%, with a virtual wallet size of 1000 BUSD, would mean 20 BUSD will be used to buy into a position. If you are using a grid bot, each subsequent level will also utilize 2% / 20 BUSD, not accounting for price scalars (more information later).
The coin list is a selection of coins by the user that the bot will trade. These can be selected either with the quick selection buttons by their market cap (top 5, top 10, top 25, top 50) or by manually pressing select. The coins can be removed by hand by either finding them on the table and pressing the “selected” button to deselect or by pressing on the coin logo un the “Coins Selected.” The coin list consists of coins that have enough pricing data, are not stable coins, and are traded against BUSD.
The user-selected coins will all be traded against using the user-provided entry and exit rules.
The way BravoBot deals with entry strategies is unique. The user can have multiple entry strategies. Each entry strategy can consist of one or more entry rules. Rules are user-defined conditions that evaluate to either true or false. If just one of the potentially multiple entry strategies is true, the bot will enter a position. For an entry strategy to evaluate to be true, every rule within it must be true at the same time.
- Rule 1, Buy if the RSI in the last 1 minute is less than 25
- Rule 2, Buy if the RSI in the last 15 minutes is less than 35
- Rule 3, Buy if the RSI in the last 1 day is greater than 75
- Rule 1, Buy if the RSI in the last 1 minute is less than 10
*The Relative Strength Index (RSI) is a momentum indicator that measures the magnitude of recent price changes to analyze overbought or oversold conditions. Learn more here.
For example, above, we see two different entry strategies. For the bot to enter a position, either ‘Strategy 1’ or ‘Strategy 2’ must be true. If they are both true simultaneously, then ‘Strategy 1’ will be considered the utilized strategy, as it appears before ‘Strategy 2’ in the ordering.
For each coin that has been selected in the aforementioned coin list, each rule within the strategies is tested. This means that if you have selected Bitcoin (BTC), and Ethereum (ETH) in the coin list, then every 15 seconds the bot will check whether for BTC, and for ETH:
RSI in the last 1 minute is less than 25 AND RSI in the last 15 minutes is less than 35 AND RSI in the last 1 day is greater than 75, are all simultaneously true (Strategy 1).
RSI in the 1 minute candles, is less than 10. (Strategy 2).
Only a single strategy has to evaluate to be true for one of the bot’s selected coins for the bot to create a position.
Exit strategies are how the bot is going to exit the position. BravoBot has various exit strategies. BravoBot currently has Take Profit with Optional Stop Loss, Trailing Stop Loss, Delayed Trailing Stop Loss, and Grid Trading Strategy as exit strategies. Learn more about these exit strategies by clicking on their names.
Backtesting Bot Controls
The backtesting bots have very similar controls to live bots. Once a bot is selected in the table, the user can start and stop the bot, duplicate it, copy it to live bots, modify it, or delete it. The control panel also has information about the selected bot such as the name, creation date, number of runs completed, how long is the backtest, number of entry rules, highest ROI% (vs other backtest runs done by the bot), the state it is in, and an overview of the config it is currently using. If you run the same bot more than once, within 24 hours, the system will stop the bot as the report has already been created.
Reports (see Figure 18) are how users can analyze their backtesting bots’ results. Reports can be accessed on the right side of the screen past the controls for the selected bot. Also, the most recent report will be hyperlinked in the bot selection table with the text ‘Finished View Latest Report.’
Users can see the completion of a backtest under the ‘Progress’ column.
Once a backtesting bot has finished its backtest, it will automatically generate a report with every trade that the backtesting bot did. One backtesting bot can generate multiple reports if the user wishes to modify the bot without entirely remaking a bot.
Inspecting a Report
On the reports page, information regarding the backtest can be found. In the top right of the report, users can double-check the config in the top right, this will list all of the settings that the user has issued to the bot during the creation of the bot.
Following that, general information cards such as the total earnings, average profit per trade, the number of trades, and backtest length can be found.
Below the general information cards, two important interactive graphs are found, the wallet balance ‘Change over Trade’ graph and the ‘Change over Time’ graph. By hovering the mouse over the line, more information becomes visible. The user can change between the two graphs by using the tab buttons at the top of the container.
Below the aforementioned interactive graph, there are two cards: the ‘Strategy Analysis’ table and the ‘Volume of Coins Traded’ pie chart.
The strategy analysis table displays information about the entry strategies utilized during the backtest. For each entry strategy, there is:
- Win rate (WR); is the percentage of times that a strategy entered resulted in profit. For example, if a entry strategy has a WR of 60%. It means that 60% of the time that the given entry strategy was used, it resulted in profit (for instance, with a take-profit), and 40% of the time, it resulted in a loss (for instance, with a stop-loss).
- Return of investment (ROI); absolute value, representing the net difference in wallet size from utilizing the matching strategy. A value greater than 0 means that the strategy yielded a positive ROI. A strategy less than 0 means that this entry strategy lost money.
- Frequency (Freq.); Percentage displaying out of all the entry strategies provided, how often was the given entry strategy being used to enter a trade.
Right of the strategy analysis table is the ‘Volume of Coins Traded’ card, containing a pie chart displaying the volume of coins traded by the bot during the backtest. The piechart is interactive, allowing the user to see more information by hovering over a pie chart slice.
Finally, at the bottom of the report, users can find a complete trade log containing all the trades the bot completed during the backtest. This can be sorted in any way the user wishes (by clicking on the table headers), searched, exported as a CSV file to let users do further analysis using spreadsheet software or even printed.