Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

General considerations about Market Making strategies. #26

Closed
MarkoPaasila opened this issue Feb 23, 2018 · 1 comment
Closed

General considerations about Market Making strategies. #26

MarkoPaasila opened this issue Feb 23, 2018 · 1 comment

Comments

@MarkoPaasila
Copy link
Collaborator

MarkoPaasila commented Feb 23, 2018

The purpose of this software

This bot should help any user provide liquidity in any market on the BitShares Exchange free of any additional cost. This has a few implications:

  1. Some users can be online only seldom. The bot should serve them, in order to benefit from the liquidity they can provide.
  2. Some users can have their bots run all the time. They should be able to make use of the on-time.
  3. The bot should serve users that don't know how to use a command line (pc users).
  4. The bot should serve users that only have a command line interface (server use).
  5. As users hold multiple assets, the bot should have the ability to run multiple "bots"; that is, provide liquidity in multiple markets using different accounts for each market.
  6. The strategies provided should ship with conservative and sane defaults, so the casual user can get started with minimal risk.

The Worker Proposal itself imposes some restrictions. Since the project is payed for collectively by BTS holders, the work should not benefit some limited group, but the whole: even those who do not use the software! A typical trading (non-market-making) strategy takes available liquidity off the market. This (possibly) benefits the trader in question, but reduces value from the rest; reduced liquidity is reduced value of the market, and thus the platform sustaining it. Therefore, the software cannot provide strategies that don't add liquidity to markets at all times. The ones left are not many.

Profitability

It can be assumed that no-one will use a Market Making Strategy if it makes a loss. Making a profit will increase the Market Maker's assets and the liquidity he can provide. Therefore all the strategies provided by the software can be described as a "Strategy that attempts to profit by making markets". The different strategies can be classified by how they attempt to make the profit:

  1. Profiting from the inherent spread between lowest sell-price and highest buy-price. Take the spread.
  2. Profiting from the ever-present volatility, especially in cryptocurrencies.

These two require almost no assumptions at all about the future. One benefit of these strategies is that they don't necessarily require constant on-time. They can be successfully maintained a few times a day, or even a week. These strategies therefore suit the purpose of the software perfectly. They can be run by users on laptops or desktops.

Many trading strategies that try to predict the future can also be executed by simultaneously making markets. If you think the value of an asset will dip a little and then rise, you can place buy orders and once they have filled place sell orders at a profit. That way they don't reduce liquidity but increase it. However they require software that is always on, thus practically limited to servers. They are also more risky because they rely on predictions.

Strategies

These strategies will initially be included in the software:

  1. Relative Orders, which tries to benefit from the spread and cope with volatility.
  2. Staggered Orders, which is similar to the Mean Reversal and Order Grid strategies, but designed with cryptocurrencies' massive range in mind. It attempts to benefit from the volatility, (and spread as a side effect)

Both strategies will be tailor suited to BitShares. The strategies will be shipped with sane and conservative defaults.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants