Releases: Codaone/DEXBot
Releases · Codaone/DEXBot
1.0.0
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
Contributors
- @bitfag
0.24.2
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 usesretry_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.
Bugfixes
- #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.
Contributors:
@bitfag, @froooze
0.18.1
0.17.8
0.17.5
0.17.1
0.17.0
Features:
Changes:
- #588 - Refactor Staggered Orders place_closer_order allow_partial
- #663 - Run some mandatory tests in Travis
Fixes:
- #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
NOTE:
In case problems with OSX version, try out the 0.17.1 release which uses Python 3.7
Contributors:
@bitfag, @bitProfessor, @joelvai
0.15.5
Features:
- #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
Changes:
- #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.
Fixes:
- #655 - Add missing imports for King of the Hill
- #656 - Fix syntax error in dexbot/ui.py
- #658 / #659 - Fixes for Pull Request #487
Contributors:
@bitfag, @dls-cipher, @joelvai, @thehapax, @MarkoPaasila
0.13.3
Features:
Changes:
- #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.
Fixes:
- #587 - Fix several race conditions in Staggered Orders
- #634 - Fix Windows installer uptick installation
Notes:
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.
Contributors:
@bitfag, @dominic22, @joelvai, @jquijino
0.11.12
Features:
- #433 - Offical Docker image
- #515 - Local Strategy Test Interface
- #595 - Unit tests for Staggered Orders
Changes:
- #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
Fixes:
- #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
frombase.py
- #596 - Fix BitsharesOrderEngine and BitsharesPriceFeed inconsistent attributes
- #605 - Fix dexbot-cli configure - IndexError:
Dependency updates:
- #570 - Change pybitshares and graphenelib to use own forks
- #616 - Update
websocket-client
to version 0.56.0