Fazer-dxmbot-010


#1

Proposal Name:
fazer-dxmbot-010

Owner:
Fazer as @fazer on discord

Cost:
700 BLOCK(fazer) (development + running experimental 24/7 liquidity bot for testing, debug, collect stats)

Voting:
vote 70b42af9efc7c087f196d937a7edc2233314ab6116d15f848f6257c9c04bec6c yes

Previous Work:

  • fazer-dxmbot-001
    – discussion and development dxmakerbot 001 has been already done.
    – dxmakerbot 001 can be found at https://github.com/nnmfnwl7/dxmakerbot/tree/fazer_dxmakerbot_update_001

  • fazer-dxmbot-002
    – working on slow development of upcoming features
    – doing support for ppl who are interested in dxmakerbot
    – div by zero bug fix

  • fazer-dxmbot-003
    – working on slow development of upcoming features
    – added add more validations and help messages https://github.com/nnmfnwl7/dxmakerbot/commit/3397670521c511a585beb5d329ab3935d4dec9a0
    – fix dxmakerbot exeption caused by balance-get in case when wallet disconnected https://github.com/nnmfnwl7/dxmakerbot/commit/3397670521c511a585beb5d329ab3935d4dec9a0
    – doing support for ppl who are interested in dxmakerbot
    – merging changes for upcoming dxmakerbot_v3
    – you can find latest version here: https://github.com/nnmfnwl7/dxmakerbot/tree/fazer_dxmakerbot_latest
    – you can find latest beta version here: https://github.com/nnmfnwl7/dxmakerbot/tree/fazer_dxmakerbot_latest_beta
    – dev add reopenfinishednum and reopenfinisheddelay config feature
    – dev add trading boundary config features boundary_*
    – dev upt delayinternal default value from 9 to 3 to increase timers accuracy

  • fazer-dxmbot-004 and fazer-dxmbot-005
    – research, development, testing, bugfixing, support, code refactoring, repeat
    – updated reopenfinished to reopenfinisheddelay and reopenfinishednum - finished orders will be reopened after specific number of filled orders or in specific timeout
    – added static/relative and asset-relative trading price boundaries
    – as easiest explanation, boundary features are very useful when you wanna from dxmakerbot to stop working when price of configured asset goes out of boundary (maximum minimum). Like to prevent selling BLOCK under specific or relative price.
    – all new stuff already in community testing pre-beta, details in commit https://github.com/nnmfnwl7/dxmakerbot/commit/7e164021d6a517b1825f49eb150601f4d4ff0e80

  • fazer-dxmbot-006
    – research, development, testing, bugfixing, support, code refactoring, repeat, 24/7 bot running and analysis, block dx liquidity support
    – working on dynamic spread(slide) feature fix and update. New params --slidedyntype ‘relative’/‘static’ and --slidedynzero for asymetric dynamic spread(slide) balance. Dynamic slide is functionality which can dynamically update slide when market center price still have no action but one side selling/buying already started. As bot detect unbalanced sells/buys it automatically move order price with dynamic slide as is it configured from +0 dynamic slide up to +max dynamic slide at specified amount.
    – updated internal balance measurement as total, reserved=locked by orders, available=left.

  • fazer-dxmbot-007
    – working on <–sellstartmin> and <–sellendmin> which are dynamic order size/dynamic taker size/partial orders.
    – Dynamic order size means, if there is not enough funds to add order with default size by <sellstart (size of first order)> <sellend (size of last order)>, bot will recompute highest size which is available to create and also must meets required minimum order size provided by <–sellstartmin> and <–sellendmin> For example if your bot is configured like <sellstart 300> <sellend 100> <sellstartmin 100> <sellendmin 50> <maxopen 3>. By default will bot try to create 3 orders: 1# maker with size 300, 2# maker with size 150 and 3# maker with size 100. If orders are somehow done, and there is not enough funds to create order ie. 1# at size 300, but available only 51, bot will not create 1# also 2# but last order which is at <sellend 100> <sellendmin 50> and maker size meets minium 50, so order at maker size 51-txfee will be created.
    – Partial orders means, to cooperate with upcoming BlockDX partial orders feature.
    – Dynamic taker size is to cooperate with upcoming makerbot <–takerbot> feature.
    – working on <–takerbot> feature. to “Keep checking for possible partial orders which meets requirements(size, price) and accept that orders.”
    ‘If this feature is enabled, takerbot is automatically searching for orders at size between … and at price +* and higher.’
    ‘This feature can be also understood as higher layer implementation of limit order feature on top of atomic swaps on BlockDX exchange, because Takerbot can possible cancel multiple opened orders to autotake orders which meets requirements’
    ‘(I.e. value 30 means check every 30 seconds)’
    ‘By default this feature is disabled.’
    – as always research, development, testing, bugfixing, support, code refactoring, repeat, 24/7 bot running and analysis, block dx liquidity support

  • fazer-dxmbot-008
    – at summary: research, development, testing, bugfixing, support, code refactoring, repeat, 24/7 bot running and analysis, block dx liquidity support
    – what consumes lots if time was manual testing upcoming features
    – added , , , ,
    – added dxmakerbot v2 commented configuration examples as howto/examples/bot_v2_sell_block_buy_ltc.py and howto/examples/bot_v2_sell_ltc_buy_block.py
    – refactoring and fixing feature
    – fixed bug which was causing dxmakerbot crash when no virtual orders created when takerbot enabled

  • fazer-dxmbot-009
    – as long term discussion about xBridge API(handling UTXOs, addresses, left vs reserved balances) i think it was updated as it was needed and new API is already in use by dxmakerbot
    – working on, almost done, mostly it needs to be tested:
    – component <pricing_storage> which is pricing storage and price update manager, saving bandwidth/data/source-code
    – <sell_size_asset> to be able to set size of orders in specific asset instead of maker
    – updated boundary feature having <boundary_asset> <boundary_asset_track> and <boundary_reversed_pricing>
    – <boundary_start_price> to manually set price of which are boundaries computed
    – <address_only> to limit bot to use and compute funds only from maker and taker address, so users will be able to run parallel bots of multiple pairs on same wallets with separated funds.
    – <partial_orders> which enable/disable partial orders creating with minimum is set by
    – <make_next_on_hit> which enable/disable creating next orders when previous was not able to create because some failed conditions, like not enough funds to to place order.
    – <sell_type>, exp/linear/log orders size distribution type, number between <-1 and 1>. >-1 means maximum exponential to 0 means linear to <1 means maximum logarithmic

PLEASE READ
All next followed features list will be prioritized on the fly by research and development of dxmakerbot.
Done/in testing updates of this “rolling up” proposal are moved from Overview: to Previous Work: section.

Overview:

  • Purpose of this proposal is to continue with dxmakerbot research, development, testing, bugfixing, support, code refactoring and rolling-up new features and makerbot versions.

  • possible features/work to be done:

  • add more dxmakerbot events/features(exit bot events, reset order events, reopen order events, wait order events)

  • add save and restore orders from file

  • save orders to db before exit, dxmakerbot session will be able to cancel only session specified orders on reconfig/exit/crash

  • update configuration verification if missing something to be more user friendly

  • PUMP/DUMP auto management, feature is expected in V3 makerbot

  • autodetect and precompute possible next pump

  • dxtakerbot/dxmakerbot automatically selling all coins of wallet which is detected as going to dump…

  • feature is to automatically compute top price of next pump and cover it.

  • feature to opposite dxbot side to detect pump/dump to disable dxbot to not make a loss.

  • add logarithmic/exponential/linear staggered mods for orders size and price
    – possibly also add log exp linear orders-spread distribution. have some discussion about it, but still not sure.

  • educational examples & info-graphics & video tutorials how to use dxmakerbot

  • release makerbot v3 which will be complex fileconfig BlockDX maker/taker bot with pre-configured multiple strategies which will be automatically executed/stopped by hiting conditions to ie: auto long, short, stabilize price.

  • mirroring open orders from external exchanges

  • staggered orders row/valley/hill + log/exp/linear.

I believe that i gives you many reasons to vote up this proposal to continue dxmakerbot development and all stuff around.
Thanks for your time & MTFBWY
Hopefully see you later on upcoming dxmakerbot development.