Skip to content

@joelvai joelvai released this May 23, 2020

Staggered Orders

  • Change order size limiting logic to fix case when when spread is not reached, sides imbalanced, several sell orders filled at once and need to place closer buy order. To correctly determine limiter, just use previously stored orders (fetch from db). Updated logic is more correctly determines limits for mountain and neutral modes also. #601
  • Fix insufficient balance error, #765. Case happens when base or quote balance is not enough to place minimum allowed order when placing lowest buy or highest sell order.
  • Fix SO worker being disabled when API node returned empty trx['operation_results'], #764

Relative Orders and King of The Hill

  • RO and KOTH are now supports Operational balance settings which allows to split balance on account across multiple dexbot workers. #712, #747.

Other changes

  • Relax dependencies to follow semantic versioning, #767. Allows to install DEXBot and other packages with intersected dependencies without causing version conflicts.
  • Refactor DatabaseWorker singleton, #761. Custom database path could be used now, and a new DatabaseWorker instance is created for each database file. This allows to use separate database file when running tests at the same time. when another dexbot instance is running.
  • Add more pre-commit hooks, #760, apply some formatting hooks across all codebase. In future, using these hooks will result in cleaner codebase.
  • Speed up SO tests execution, add worarounds to fix previously disabled tests
  • Add skeleton for BitsharesOrderEngine tests, #759
  • Bump dependencies on pyhotn-bitshares and pyinstaller


  • @bitfag
Assets 6

@joelvai joelvai released this Mar 31, 2020

API Nodes Interaction Improvements and Fixes

  • Fix API error details (#692) by updating to current bitshares libraries. Now instead of Execution error you will get a more meaningful error message
  • We're tracked down the causes of trx.ref_block_prefix == tapos_block_summary.block_id._hash[1] exception and added a handling for it. Now if will happen, worker will not be disabled, instead, API node will be changed and transaction resubmitted. See #680 and xeroc/python-graphenelib#144
  • The program can now better detect whether API node became stale by checking it's 'time' field of global properties (#728). This check will eliminate situation when the bot doing a reconnection to the next node and it's stale. This may be critical if you run arbitrage strategies on top of DEXBot
  • When worker failed to execute a transaction, TransactionBuilder buffer is now reset before switching to another worker. Previously it may cause an error when for some reason worker's account active key become incorrect or missing. #505

Staggered Orders New Features

  • Stop Loss feature (#730). If market bid price goes below worker lower bound, you can optionally enable Stop Loss to sell some percent of trading asset
  • Switch to disable fallback logic (#723). Sometimes, worker can fall into situation when it doesn't have enough funds to reach target spread. Such situation may occur normally in some circumstances. To overcome this, SO worker begins to cancel furthest buy orders and use these funds to place closer orders. This change allows you to disable this logic.

Staggered Orders Bugfixes

  • #720 - Fix price inversion for virtual sell orders in Staggered Orders. This fixes wrong prices in "Placing virtual sell order" log messages.
  • #750 - Add common handling of broadcasts exceptions into Staggered Orders. In previous versions, SO has own exception handling when broadcasting batch transactions. Though this custom handling didn't contain everything that retry_action() does. Now SO uses retry_action() wrapping too.
  • #706 - Make upper/lower bounds description more clear (Staggered Orders)
  • #554 - Fix Staggered Orders asset threshold. Minor issue, the change should reduce number of allocate_asset() calls, which means less log messages in debug mode
  • #721, #739 - Fix several Staggered Orders tests

King of The Hill

  • #677 KOTH is now see margin call orders. As call orders are not shown in orderbook API call, they were not visible to KOTH previously.
  • #715 - In "both" mode, when worker has 0 balance of some asset, it was an error message displayed Cannot place buy/sell order with 0 amount. Now this message will be logged only in debug mode.


  • #686 - Fix GUI crash due to error in get_sorted_nodelist() call
  • #473 - Fix strategy template. There was a small error in error()
  • #727 - Fix order data reconstruction when getting order which was instantly filled. Fix is critical to upcoming arb strategies.
  • #631 - Fix validation of config file when custom config provided via --configfile cli option

Other Changes

  • #729 - Add CLI command to drop worker data. Sometimes, you may need to drop worker database data, now you can do this by invoking dexbot-cli drop-state myworker
  • #717 - Added pre-commit hooks and re-formatted code base. Code is now more clear-looking and formatted in single style
  • #731 - Added a decorator to check last run and log maintenance time. This is for strategy-makers.

@bitfag, @froooze

Assets 6

@joelvai joelvai released this Mar 11, 2020


  • #701 - Add cancel all market orders option to CLI
  • #710 - Added node list reset to CLI


Assets 6

@joelvai joelvai released this Dec 18, 2019


  • #711 - Update default nodes list in


  • #708 - Fix wrong price when using own last trade as center price
  • #705 - Fix cancel dust order

@bitfag, @dls-cipher, @thehapax

Assets 6

@joelvai joelvai released this Nov 21, 2019


  • #642 - Staggered Order worker placing multiple orders between the set increment
  • #697 - Fix race condition in Staggered Orders
  • #699 - Fix getting last own trade price in Relative Orders strategy
  • #700 - Fix requirements and update uptick to version 0.2.4

@bitfag, @thehapax

Assets 6

@joelvai joelvai released this Oct 25, 2019


  • #694 - Change MacOS build to use Python 3.7

This build doesn't introduce anything new, but has working executable for MacOS users. Requires Python 3.7 to run.


Assets 3

@joelvai joelvai released this Oct 25, 2019


  • #441 - Single account multiple workers
  • #682 - Add tests for Relative Orders


  • #588 - Refactor Staggered Orders place_closer_order allow_partial
  • #663 - Run some mandatory tests in Travis


  • #596 - Fix BitsharesOrderEngine and BitsharesPriceFeed inconsistent attributes
  • #649 - Fix limit max balance to be used per asset, insufficient balance error
  • #651 - Fix Staggered Orders bug in pytest.approx
  • #664 - Fix DEXBot failed to ping node in Docker
  • #668 - Fix KOTH bot trades with itself if spread is 0
  • #670 - Fix KOTH with one asset

In case problems with OSX version, try out the 0.17.1 release which uses Python 3.7

@bitfag, @bitProfessor, @joelvai

Assets 6

@joelvai joelvai released this Aug 21, 2019


  • #454 - King of the Hill strategy
  • #611 - Relative Orders use last order as centre price
  • #635 - Add auto sort nodelist in config and on dexbot-cli run to CLI
  • #637 - Add delete node to CLI configure


  • #442 / #636 - Staggered Orders: keep virtual orders state across restart also keeping of initial and current orders for visualization purposes
  • #640 - Set loglevel on "dexbot" logger
  • #643 - Change default node list. For more details on changed list of nodes here.


  • #655 - Add missing imports for King of the Hill
  • #656 - Fix syntax error in dexbot/
  • #658 / #659 - Fixes for Pull Request #487

@bitfag, @dls-cipher, @joelvai, @thehapax, @MarkoPaasila

Assets 6

@joelvai joelvai released this Jul 19, 2019


  • #584 - Install wizard for Windows
  • #630 - Unlocking the wallet with a Docker secret


  • #603 - GUI loading before connecting to Bitshares. GUI now opens instantly and connects to Bitshares when unlocking the wallet or saving the nodes. Changing the nodes from settings reloads the configuration and allows changing nodes on the fly.


  • #587 - Fix several race conditions in Staggered Orders
  • #634 - Fix Windows installer uptick installation


List of default nodes was cut down when making changes to GUI. In case some working nodes were removed open a ticket and let us know. Removed nodes can be seen here.

@bitfag, @dominic22, @joelvai, @jquijino

Assets 6

@joelvai joelvai released this Jun 17, 2019


  • #433 - Offical Docker image
  • #515 - Local Strategy Test Interface
  • #595 - Unit tests for Staggered Orders


  • #542 - Refactor StrategyBase
  • #581 - Refactor methods to get own orders
  • #593 - Remove orders history logging from Relative Orders
  • #614 - Staggered Orders: pre-calculate orders increases in memory


  • #474 - Fix "Worker is disabled" log flooding
  • #563 - Fix Staggered orders error: can't calculate centre price when fixed centre price is given
  • #593 - Fix Relative Orders missing self.write_order_log from
  • #596 - Fix BitsharesOrderEngine and BitsharesPriceFeed inconsistent attributes
  • #605 - Fix dexbot-cli configure - IndexError:

Dependency updates:

@bitfag, @g3d, @joelvai, @thehapax

Assets 5