Author Topic: Buy BTS !== Sell USD  (Read 988 times)

0 Members and 1 Guest are viewing this topic.

Offline botfund

  • Full Member
  • ***
  • Posts: 174
    • View Profile
  • BitShares: botfund
Buy BTS !== Sell USD
« on: October 16, 2015, 06:05:41 am »
Well, I know you can sell USD and receive BTS to achieve buying BTS using USD.
I can do things like "to buy as many BTS using 60 USD" but what I can't do is "to buy exactly 10000 BTS for worst price of 0.006" if I "sell_asset xxx 60 USD 10000 BTS" when best price is 0.005.
For most (or almost all) other exchanges, you're specifying the exact quantity of BTS and the worst price you can accept.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12915
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Re: Buy BTS !== Sell USD
« Reply #1 on: October 16, 2015, 09:17:04 am »
you can walk the orderbook but will need to derive the effective price on your own
Give BitShares a try! Use the http://testnet.bitshares.eu provided by http://bitshares.eu powered by ChainSquad GmbH

Offline monsterer

Re: Buy BTS !== Sell USD
« Reply #2 on: October 16, 2015, 09:37:57 am »
For most (or almost all) other exchanges, you're specifying the exact quantity of BTS and the worst price you can accept.

I suppose this is because bitUSD is the asset, not BTS? So you're always buying/selling bitUSD with BTS, not the other way around?
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline botfund

  • Full Member
  • ***
  • Posts: 174
    • View Profile
  • BitShares: botfund
Re: Buy BTS !== Sell USD
« Reply #3 on: October 16, 2015, 12:52:25 pm »
I suppose this is because bitUSD is the asset, not BTS? So you're always buying/selling bitUSD with BTS, not the other way around?

No, I don't think so. Reverse the trading pair will not help.

The point here is that we have only sell_asset which fixes sell amount which is fine if you sell BTS. But if you want to buy BTS, the only way is to sell_asset USD, but then you can only fix USD amount as it's the asset to be sold.

The needed change is not only on api part, it's also on the chain part and order matching.

Offline botfund

  • Full Member
  • ***
  • Posts: 174
    • View Profile
  • BitShares: botfund
Re: Buy BTS !== Sell USD
« Reply #4 on: October 16, 2015, 12:55:35 pm »
you can walk the orderbook but will need to derive the effective price on your own

Yes. But when I place the order, I only care about how much BTS I want to buy and what the worse price I can afford. It's counter intuitive to say "I want to buy as much BTS with 5 USD with price better than 0.005".

Offline monsterer

Re: Buy BTS !== Sell USD
« Reply #5 on: October 16, 2015, 01:20:37 pm »
No, I don't think so. Reverse the trading pair will not help.

The point here is that we have only sell_asset which fixes sell amount which is fine if you sell BTS. But if you want to buy BTS, the only way is to sell_asset USD, but then you can only fix USD amount as it's the asset to be sold.

Think about the way the system is designed - you're expecting BTS to be the asset which you are buying and selling, but this is not the case. bitUSD is the asset, so you sell a specific amount of bitUSD at price X which results in Y BTS. This is the same as any other exchange, only difference is on other exchanges BTS is the asset.
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline botfund

  • Full Member
  • ***
  • Posts: 174
    • View Profile
  • BitShares: botfund
Re: Buy BTS !== Sell USD
« Reply #6 on: October 16, 2015, 04:03:43 pm »
Think about the way the system is designed - you're expecting BTS to be the asset which you are buying and selling, but this is not the case. bitUSD is the asset, so you sell a specific amount of bitUSD at price X which results in Y BTS. This is the same as any other exchange, only difference is on other exchanges BTS is the asset.

Well, let's reverse it. Then I will want to buy exact 100 USD or sell exact 100 USD. We can't achieve this either. We can sell exact 100 USD, but we can't buy exact 100 USD (can only sell xxxx BTS but received USD amount will not be fixed).

Offline bytemaster

Re: Buy BTS !== Sell USD
« Reply #7 on: October 16, 2015, 04:13:04 pm »
Think about the way the system is designed - you're expecting BTS to be the asset which you are buying and selling, but this is not the case. bitUSD is the asset, so you sell a specific amount of bitUSD at price X which results in Y BTS. This is the same as any other exchange, only difference is on other exchanges BTS is the asset.

Well, let's reverse it. Then I will want to buy exact 100 USD or sell exact 100 USD. We can't achieve this either. We can sell exact 100 USD, but we can't buy exact 100 USD (can only sell xxxx BTS but received USD amount will not be fixed).


This is a complex issue.   If you say you want to buy exactly $100 of BTS then the PRICE is contingent upon the order book which is constantly changing.   

We assume you want to get as much BTS as possible for your $100, if that is the case then place a buy order with a price near infinity and you will get $100 worth at the best possible price.

For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline botfund

  • Full Member
  • ***
  • Posts: 174
    • View Profile
  • BitShares: botfund
Re: Buy BTS !== Sell USD
« Reply #8 on: October 16, 2015, 04:28:47 pm »
This is a complex issue.   If you say you want to buy exactly $100 of BTS then the PRICE is contingent upon the order book which is constantly changing.   

We assume you want to get as much BTS as possible for your $100, if that is the case then place a buy order with a price near infinity and you will get $100 worth at the best possible price.

When I trade on exchanges, I'm thinking like this: "I'll buy 10000 BTS with the best price" or "I'll sell 10000 BTS with the best price". You see that I want the BTS amount fixed and price/USD changing. I can only do "selling 10000 BTS with the best price" on BTS2 but not "buying 10000 BTS with the best price" because I'm not assured how much BTS I will get. It's not a big issue because I will get more BTS than I asked but from a trader point of view I really hope BTS2 acts the same like a normal exchange.
btw, I also hope we can add maker/taker fee to improve the liquidity. Maker%+Taker% should be >= 0. The initial fee can start from something like [-0.1%, 0.1%] or [-0.1%, 0.2%] and can be adjusted by committees.