Best price (slower) trading algorithm

Best price (slower) trading algorithm

In our support center, we are facing various questions and we try to answer all briefly, but some questions need deeper explanations.

In recent days we faced a really interesting question related to our trading algorithm, which was also related.

We will discuss 3 main points, which are essential to understand the issue.

  1. Best price (slower) trading algorithm
  2. Market going down
  3. Your dashboard view

Quick overview

The user made a rebalance at around 20:00 UTC. They sold various coins (ATOM, BTC, ETH, GNT, LUNA, PNT, ROSE ADA and UMA) and bought TUSD, USDC and USDT. After they set the new structure, they clicked preview and confirmed. Then they selected a trading algorithm and decided to go with the best price one. Because of this, the system placed a limit order (best bid/best ask) and waited for it to get filled. After 4 hours of placing orders, they were filled 100%, and the new structure of their Strategy was in place.

But let's go step by step to understand what actually happened in the meantime.

As pointed out above, the user decided to use the Best price trading algorithm to sell various coins and buy three stable coins. After confirming, the system committed to placing limit* orders to sell all assets to 3 stablecoins. Here is where the issue happened: after the limit orders were placed, the market was already going down, and the prices for assets were falling because many traders were selling with market* orders. After the market orders were filled, the users’  placed limit orders were still not sold because the prices on the market were lower than their order limit. The algorithm changed his order repeatedly to the best price – the top price on the market. And yet, their order was still not fully filled. That continued for approximately 4 hours until all orders were filled. Everyone was buying stablecoins to protect their investment with market orders, and prices were falling faster than the buyers market maker could buy the assets.

  1. User decided to sell various coins and buy three stable coins using the best price trading algorithm
  2. User confirmed the order and therefore committed that our engine executes the orders
  3. ICONOMI trading engine placed several limit* orders to sell all assets to 3 stablecoins from the new structure
  4. Right after limit orders were placed, the market and price for those assets started dropping rapidly
  5. Other traders responded to new market situation by placing market orders to exit quicker, increasing the drop even further
  6. Once the market orders were filled, the users limit orders were not sold because the market was at the lower point than the user defined limit
  7. The ICONOMI trading algorithm changed users order repeatedly to the best price which was the top price on the market at the time
  8. Step 7. Continued for approximately 4 hours until all orders were filled
To conclude, this specific market condition where everyone was buying stablecoins to protect their investments, by using market orders was unfortunate for the placed rebalance of our user with the best price algorithm that uses limit best price orders.

What happens in your dashboard during that time

After the user decided to rebalance their structure, the system already calculated the price and presented them with the EUR amount they would have if the trades were executed immediately with that time's prices. But in fact, the user’s trades were not executed yet. For that reason, the visible value did not represent the real value of their portfolio because trading was still in progress. Here a valid question presents itself: how would users know that the trades have still not finished? After the rebalance is confirmed, you get a notification saying how much of your target structure was actually filled. To see this, you need to go under your Strategy, section ‘Structure’ – besides the word STRUCTURE.

A little later…

After the rebalance was finished ( all orders were fully filled ), users see a notifier saying: ‘Target structure: 100%’, marked with green colour.

As I already mentioned, the users’ structure was finished 4 hours after they put the orders. That is the reason why they got fewer stablecoins than were shown on the dashboard immediately after confirming the rebalancing. The user could have selected the FAST trading algorithm, and orders would have been executed much faster than through the slower trading algorithm. Based on the market momentum, the user would have had a higher value in the end.

All that information regarding trading is visible under ‘Report’ in your Strategy. You can see the rebalance date, time to rebalance, how much the rebalance weight was, and which algorithm was chosen.

For example, from the time of placing user order, ETH was continuously falling (ETH is not a good example because of the high volume of trades, but to show the market momentum).

Or another coin: LUNA, where a drop in price is visible. Selling by placing limit orders has a hard time getting filled at such a quick drop in price.

The user’s last order, which was 100% filled, was GNT. ROSE and LUNA were also not much earlier than GNT. Another reason for such a long period of trading is also in market pairs on exchanges. Some coins do not have a direct pair with USDT and need to be sold firstly to BTC or ETH and then finally to USDT (or any other stablecoin).


The value shown on the user’s portfolio was calculated correctly. But we are constantly looking into ways to improve visible information so the users know what is going on behind the scenes. In that situation, where we face a quick drop in market prices with a combination of slower trading algorithms, the dashboard needs to display information better.

* A limit order is an order to buy or sell an asset at a specific price or better.
**A market order is an order to buy or sell an asset immediately. This type of order guarantees that the order will be executed but does not guarantee the execution price.