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

1 Satoshi Bot strategy feature - Always be first in the orderbook queue #454

Closed
PermieBTS opened this issue Feb 8, 2019 · 13 comments
Closed
Assignees
Labels
[2] Needs Verification Issue needs verification [3] Type: Enhancement [4] Priority: Medium [5] Medium Task Indicates size of task. Est. between two and five hours

Comments

@PermieBTS
Copy link
Collaborator

Cryptokong

Brief description:

This worker will place a buy or sell order for an asset and update so that the users order stays closest to the opposing order book.

Moving forward: If any other orders are placed closer to the opposing order book the worker will cancel the users order and replace it with one that is the smallest possible increment closer to the opposing order book than any other orders.

Moving backward: If the users order is the closest to the opposing order book but a gap opens up on the order book behind the users order the worker will cancel the order and place it at the smallest possible increment closer to the opposing order book than any other order.

Users will be able to select a fixed order size or a percentage of balance.

Users will be able to define a range for the worker to work in. This will be the min/max purchase or sale price they are willing to accept.

The worker will ignore competing order sizes that are smaller than the users. (Possibly add option to choose order sizes to ignore).

Option for minimum duration before order reset, ie: 5 seconds.

This strategy should be able to work a market pair or select a single asset. If it is easier to just work a single asset but setup 2 workers then the workers should be able to work from 1 wallet.

The user will not be able to input settings that place orders into the opposing book and auto fill.

User settings inputs:

Asset(s)
Market
Buy/ Sell
Lower boundary
Higher boundary
Order size to be placed
Minimum order reset time.

@bitphage
Copy link
Collaborator

What are default values for lower/upper bounds? What behavior must be if bounds are set to 0? Does it means "no bounds"?

@bitphage
Copy link
Collaborator

Why only "buy / sell" modes? How about " buy + sell" (both)?

@CryptoKong
Copy link

Default upper and lower bounds shouldnt be set to no limit, we dont want noobs leaving it and being manipulated. Im open to suggestions on this.

0 can mean no bounds, thats fine. Just not set as default.

Buy and sell is fine. Some people will only have 1 asset so the intention was to allow people to use the strategy one sided. As long as it can be used with 1 asset only then thats fine.

@bitphage
Copy link
Collaborator

bitphage commented Feb 13, 2019

@CryptoKong GUI needs some default value to display, if it is not 0, than what?

The strategy anyway must not cross lowest ask or highest bid, e.g. will not fill orders, only place "maker" orders.

@CryptoKong
Copy link

Ok maybe 0 should be default as i dont know how you could have a default price for different markets without using highest buy/ lowest sell as refference.

@PermieBTS
Copy link
Collaborator Author

Is this strategy the same as scalping?
A relative orders strategy that;

  • continuously closes the spread such to remain the best offer on the orderbook by at least one satoshi
  • until it executes a trade or the user stops it.

If user could choose to make either both sides of the market or just one.. then couldn't this feature be made as additional options for relative orders couldn't it?

Does it need to be a standalone strategy?

In terms of user experience having more buttons on one page would be better I think, if possible

@PermieBTS
Copy link
Collaborator Author

PermieBTS commented Feb 13, 2019

https://www.reddit.com/r/CryptoTraderNetwork/comments/aq2oho/binance_bot_crypto_bot_market_making_strategies/

Scalping binance bot

As a side note he says a market fee of 0.05% on binance is good value. Bts limit-order-create fee is 0.006bts ($0.002).
0.05% of a ~$50 trade is 71bts at currentbtsprice.
Bts is charging 12,000 times less

@bitphage
Copy link
Collaborator

Yeah this strategy can be implemented as additional options to relative orders, though I think it's not a best idea to mess them up.

Also, the current Tech Spec is describing a "dumb" strategy which just stays on top in bounds. If I would consider a scalping strategy it will be a bit different. Basic idea:

  • If start only buy-sided, wait until buy order filled. Then place a sell order at buy_price + max(min_spread, top_sell_price). Wait until sell filled. Repeat.
  • For sell orders, keep track of initial buy price and don't let sell price be less than initial_buy_price + min_profit
  • If price drops more than threshold (or bound), sell everything at a stop loss price via taker order ignoring sell price restriction described above
  • If price spikes (pump) more than threshold (or bound), stop buy operations until user intervention

So the strategy goal is to provide constant buy -> sell flow not building up large QUOTE portfolio. Strategy can maintain buy+sell orders simultaneously and vary orders amount to prevent QUOTE accumulation.

Current Relative Orders have many of required features, but misses:

  • stop-loss
  • bounds/threshold
  • it doesn't keeps track of initial buy price

@bitphage
Copy link
Collaborator

@CryptoKong "Order size to be placed" may be expressed in BASE, QUOTE, or as two separate options (in BASE for buy orders and in QUOTE for sell orders). Please clarify how exactly order size should be specified.

@CryptoKong
Copy link

CryptoKong commented Feb 14, 2019

if a user has inputted which market pair they wish to trade in and inputted which is base and quote, can "order size to be placed" depend on which way round they inputted earlier? Perhaps "base order size to be placed" & "quote order size to be placed" fields would be better and an order size of zero would indicate one sided setup.

@bitphage
Copy link
Collaborator

bitphage commented Feb 15, 2019

This strategy should be able to work a market pair or select a single asset.

You anyway need to specify market pair to define second asset to trade against.

The worker will ignore competing order sizes that are smaller than the users. (Possibly add option to choose order sizes to ignore).

Ok, probably there should be two separate options too for buy and sell side.

bitphage added a commit to bitphage/DEXBot that referenced this issue Feb 18, 2019
@PermieBTS
Copy link
Collaborator Author

King of The Hill will be released once there has been thorough user testing.
Testing DEXBot is a priority

@PermieBTS
Copy link
Collaborator Author

Remove Label: Requires Discussion

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[2] Needs Verification Issue needs verification [3] Type: Enhancement [4] Priority: Medium [5] Medium Task Indicates size of task. Est. between two and five hours
Projects
None yet
Development

No branches or pull requests

3 participants