DEXBot Progress Report September 2018
Disclaimer
DEXBOT IS NOT A RISK-FREE ENDEAVOR AND ANY TRADING BOT CARRIES SIGNIFICANT RISK. THE DEXBOT TEAM DO NOT GIVE TRADING ADVICE AND RELY ON USERS TO DO THEIR OWN RESEARCH AND EVALUATE THE RISKS BEFORE PARTICIPATING IN THE PROJECT OR USING ANY PRODUCT FUNDED, CREATED, OR MENTIONED BY THE DEXBOT TEAM.
Status
We aren't quite there yet, but in general the software is in a usable beta state. Two market making strategies are shipped by default, and they are being used with real assets by quite many people. I won't post the list of all changes, improvements, and bugfixes here. You can all the closed issues and the code commits in github.
While making the strategies, we learned a lot about - making strategies. We bumped into lots of issues that shouldn't concern strategy makers, like for example connection problems. We have worked on the general architecture to make it less painful for people to learn, so that we could get people to contribute strategies. All traders have some personal idea about how a strategy should work, and it's impossible to fill all expectations with just a few strategies. So now DEXBot is made so that it's as simple as possible to import new strategies. It can all be in one file, and it will work in the GUI as well as the command line. The "basestrategy" class got a friend called "strategybase", which provides a more understandable basis for creating strategies. It also has methods to get prices from some certain "depth", to calculate the center price from a "depth", and to estimate market spread from a "depth". In those cases actions aren't based on information about some "dust orders" or else insignificant orders, but from "the price at which one could buy x amount of quote" or " the price for which one could sell y amount of quote". It will be interesting to see how these functions can be utilized and how they affect strategy performance. The method names should be very accurate and descriptive. They should answer all the most common questions including ones like: "how much of asset z should I reserve for fee's", and "how much of quote asset have I allocated into orders".
There now is a strategy template, from which new strategies can be developed without having to start from scratch. It has more comments than normally, to explain what the different methods do.
The Staggered Orders strategy was completely revised, and it now works in a sane way. It is very flexible and can suit all and every market and market condition. It is very suitable for bootstrapping completely new markets and new assets, and can also make a profit in completely mature markets with stable assets. An overview of the changes is here.
The latest packaged release can be found here.
Roadmap
Unlike many other software, a trading bot is pretty much unusable until it's complete. Strategies just don't work without all necessary elements. Bugs also break the very idea of automation. So we must continue to fix problems that users encounter. A few interesting features are still missing from the two default strategies.
Towards the end of the funding we want to make DEXBot such that it can continue to live "on it's own", and even keep improving. This entails:
- Creating a testing framework, the main emphasis of which will be to stress-test strategies indirectly though a testnet market. This resembles real world usage, and will suit existing and all future strategies, helping us and future strategy makers make resilient strategies that don't collapse in unexpected conditions.
- Supporting a community of to-be strategy developers. There are tons of people who would love to automate their ideas of trading, and we think a peer support group for learning python by developing trading strategies for DEXBot can be the spark they need to do it. This will also provide some great feedback on how to improve the strategybase class and strategy template - to make it as intuitive, unambiguous, and straightforward as possible.
- Improving the performance of DEXBot by parallellizing the workers into their own threads, or by some other means.
- Providing methods to get price information from external sources, and from the witness-price-feed.
- Making a separate view in the GUI for more specific information about a worker.
- Implementing some basic profit estimation method.
Accounting
So far we have spent:
- $75,155 on development (pure development work)
- $18,140 on project lead (actual management, lead developer work, architecture and strategy design, meetings, documentation)
- $3962 on PR (website, content creation, presentations)
- $6090 on UX (mostly design and UI develpment)
Unspent budget as per today (2018-09-17) is $31,653.
We intend not to spend everything during our WP period, but to spare some for supporting the software some way into the future. We need to keep up information on the web, fix critical bugs, and maybe even do some advertising.
Additional information
Join the chat, learn python with DEXBot in the peer support group, contribute code.
If you have a specific strategy in mind, please join the learning group, where people can discuss the logic and learn to implement it.
Have fun, take risk with caution, read the documentation, and don't do stupid things.
EDIT: I forgot to mention that no BTS has yet been returned to the reserve pool. Prices have been about 10x lower than when we started, so almost all has been spent to get enough bitUSD to reach the budget. Luckily we were conservative and it has sufficed. Once we accumulate more than what is needed until the end of our period, we will return all excess BTS and USD.