in Cryptocurrencies

Traderino update #1: Multistrategy testing and improved bot commands

It’s been two weeks since my last blog post and finally a new update for Traderino is ready. As usual, let’s do a small recap of what happened in the last couple of weeks.

PNL plot for Traderino in the last trading session (9 days)
Closed positions recap

In these 9 days of trading we’ve had some big swings in profits but it seems for now Traderino managed to come out on top.

Since I’ve implemented the last update, Traderino has become very, very active. You can clearly see that he makes a lot of trades, and each trade accounts for a small profit (avg. profit 0.07$). It’s an average of 25 trades per hour for a total of ~5.5k trades. Of course, the average position duration is pretty short, at 1 hour. This is all in line with what I had in mind when I designed Traderino. I wanted to make something that takes profits early rather than keeping positions open for a long time.

However, another instance of Traderino has been running with real money on the side (not shown in the Telegram channel), and results are a bit inconsistent with the simulated trading version.

A screenshot of the positions opened by Traderino in the Binance client. A rare instance where Traderino had mostly green positions.

At first, a bug in the computation of the liquidation price/stop loss caused the real money version to lose more money than expected for each trade. This has been fixed and now I’m still leaving the real money version running to see if they behave exactly the same or there is something left.

This is really hard but also crucial to debug: the simulated and real money versions need to behave exactly the same, otherwise any result I obtain in the simulation is completely useless.

One of the reasons that makes it hard to debug is that until now Traderino has been trading on all Binance futures pairs. After a while I realized that the high number of coins just introduces a lot of complexity while bringing no advantage whatsoever. For this reason, I’m also limiting the amount of coins that we trade on; for more info read the next section.

Multistrategy testing

A big problem when developing any automated trading system is that one often ends up with a lot of parameters that can be tuned to optimize performance. For example, which timeframes should I trade on? What values should I use for the Supertrend indicator? Which coins are more profitable? Also, when you start developing your own formulas, you usually introduce another bunch of parameters that can be optimized.

Ideally you would want to test all of the possibile combinations of parameters and then choose the best performing one. But since Traderino has no backtesting, the only way to do that in a reasonable time is to test the different strategies in parallel.

That’s exactly what this new feature does, since it allows to specify different strategies and to run then independently from each other.

Each strategy can be just a variation of parameters (for example, just changing the timeframe) or a completely different algorithm using a different set of indicators. At the moment, I am only creating variations of the basic Supertrend strategy by just changing its parameters.

Specifically, I’m going to test the following:

  • the timeframe (1m, 3m, 5m, 15m, 30m, 1h, 2h);
  • the coin (BTC only or top 10 Coinmarketcap coins);
  • the take profit/stop loss levels (2 different configurations: smaller tp/sl with no trailing stoploss and bigger tp/sl with trailing stop)

All in all we have 7 possible timeframes, 2 coin configurations and 2 tp/sl levels for a total of 28 (7*2*2) different strategies.

For example, the supertrend_btc_1m_ts strategy trades BTC only on the 1m timeframe with a trailing stop, while the supertrend_top10_1h trades the top 10 coins (ETH, BNB, ADA, DOGE, XRP, DOT, UNI, LTC, BCH, SOL) on the 1h timeframe without trailing stop.

As I said, all the strategies for now will use the Supertrend but this feature allows to implement different strategies as well. This requires more time than I have at the moment and I believe it’s better to spend it refining what I have already, but it’s always on my mind to add something new sooner or later.

New bot commands

The Telegram channel was already pretty noisy as Traderino was opening/closing a lot of trades per hour. Now that he’s trading multiple strategies it’s impossible to post all of them to Telegram, and even then it would be impossible to follow it for a human.

For this reason, I’ve decided to build some new commands to help me understand what’s going on with Traderino. You can use these commands as well. To do so, just start a conversation with Traderino @SirTrader_Bot and type /help to see a list of the available commands with a brief explanation.

These commands allow to see what Traderino is doing for each individual strategy, how well it is performing and, of course, get some plots as well! The explanation in the help commands should be clear enough to understand how to use it, but if you have any question feel free to leave a comment here or in the Telegram channel.

The Telegram channel will remain active but since we can’t show all the strategy we will just follow 1 strategy at a time. I may periodically switch which strategy is shown, but the output is pretty much going to be the same.

What’s next

The plan is to test these 28 strategies for another couple of weeks and then select the best performing one for real money trading.

In the meantime, the plan is to fix remaning issues with Binance integration and possible inconsistencies between the real and simulated trading.

Lastly, if I have time, I will also try to add some new strategies not based on the Supertrend indicator.