This post gives me hope about bitshares again!
We will be migrating BitShares GUI to copy as closely as possible the best interface out there. We will also be copying the best fee system and best market rules.
Copy Poloniex GUI imo. It is great for trading lots of alts against a main coin. (Note: We are trading lots of assets against core BTS in Bitshares, so its similar).
For fee rules, the best would probably be 0.2% fee (this is how crypto exchanges work). But If we cannot do percentage fees, then a flat fee per trade also works, the way that stock brokerages work, for example scottrade $7 trades. So if it is too technically difficult to do a .2% fee on the blockchain for some reason, a flat fee can work.
It is really, really important that customers dont pay fees for orders that do not execute (aside from a very very small fee purely to prevent spam, that needs to be as low as possible, like .1 BTS). This needs to be the case for both lifetime members and normal users. Not everyone is going to be a lifetime member, and we need the liquidity those people provide from creating orders.
Everyone seems to like poloniex margin trading, so we will adapt their rules unless Bitfinex is better. Any help on identifying the best choices let us know.
Polo is good, and it appears that it is working really well and has not had a single instance of someone who gets margin called not being able to pay back all of what they owe to lenders. (Of course, it has had many instances of margin calls taking most of peoples BTC or alts, but that is what "should" happen).
This algorithm is quite complicated however. Essentially, every time someone places or removes an order or makes a buy or sell, it then checks whether the resulting state will cause somoene to get margin called, not based on the nominal price that the item just traded at, but at the remaining orderbook! This is very important because just because some alt is trading at '100' does not mean that someone who got margin called would be able to sell it all at 100 to fulfill their margin. They need to account for the fact that the margin call is going to dump it down a huge amount through the orders on the book and crash the price. This leads to the behavior we have seen on polo, which is that at some point a whale will pull a large buy order from below the price, and the lack of that order existing on the books anymore will cause someone to no longer fulfill their margin requirements, so they dump into the now thin order book, and then this causes others to get margin called, etc.
While this might seem bad, it is the way it has to be in order to work correctly. After all, we cannot have instances where the blockchain generates tons of extra BTS or an asset type, to cover someone who is gets margin called and cannot pay people back. If this loophole exists it could be exploitable in some small illiquid asset and be used to generate large amounts of the asset or BTS, and would ruin everything.
Some of the bitcoin exchanges like huobi and okcoin use a system of socialized losses where if a person is margin called and cannot pay, everyone trading futures covers the loss. This is total BS and we should not do it, every time it happens tons of people flee those exchanges.
Note also: The margin lending CAN BE THE BOND MARKET. Go look at the poloniex lending page and see how it works. IT IS A BOND MARKET right there. So implementing this feature and the bond market are really one item.
It is very important that the margin call system works correctly so that lenders ALWAYS get their BTS (or whatever) back in full. Otherwise the bond market becomes a big risk and no one will trust it.
We are going to stop trying to invent new market mechanics if at all possible and use what is proven to work. So please help us identify places where our system deviates from the market-accepted solutions.
1. Fee Systems
2. Trading Interfaces
3. Order Matching Rules
In other words, we want people to be able to use BitShares without having to learn anything new!
Fee system: The place we deviate is fees for cancelled orders. These need to be made really really really low, only existing to prevent spam from filling up our TPS.
Trading Interface: Copy poloniex imo.
Order matching rules: You should be able to put in an order for more than the current price, and it will match it to the orders on the books at those prices, and not take the difference as a fee. (No 'get what you asked for' or whatever). This is not a good way for the blockchain to try and make money, the blockchain makes money by having happy customers making lots of transactions and paying a fee for each.