Author Topic: About Fees  (Read 5838 times)

0 Members and 1 Guest are viewing this topic.

Offline starspirit

  • Hero Member
  • *****
  • Posts: 948
  • Financial markets pro over 20 years
    • View Profile
  • BitShares: starspirit
It's relieving to see the thinking in this thread. My initial impression  :D :D :D
I don't have time to contribute right at this moment, but arhag and Ander's points are very good.

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
For a partially matched limit order, the fee needs to be the same percentage as the market order fee, imo. 


Fees for both limit and market should probably be something like 0.1% or 0.2% of the matched value, plus a tiny order placement/order change fee. 

Someone please correct me if I am wrong, but I don't think there are "market orders" in BitShares 2.0. Market orders are effectively just limit orders with a ridiculously large limit anyway. It appears to me that the percentage you and I are both referring to is represented by the market_fee variable in the list bytemaster provided.

I don't even know if there is an order change operation. But if the order placement fee should equal order change fee (which I think makes sense), then making the cancel operation free means that an order change operation is effectively a cancel operation and a new order placement operation in a single transaction.

If someone gets their limit order executed in pieces over time, they should only pay the order placement fee once.

Yes, I agree. And the order placement fee (which is the $0.01 bytemaster referred to in his example) definitely would be charged once. But what I would like clarification on is what that extra $0.20 fee "when they get matched" is and how it works. Personally, I think that extra $0.20 fee should also be zero because I don't think it makes sense when you consider that orders in the order book may only be partially matched.

Edit: I also don't think the percentage fee should go towards referral rewards at all. I think that unlike the other fixed fees in the system, the percentage fee should be the same for lifetime members, annual members, and basic users and should only go to the reserve pool. I think this would be more symmetrical with the percentage fee UIA assets can charge (which fully go to the UIA issuers). Also, can delegates assign percentage fees on core (non-private) BitAssets that are collected in a pool that the genesis account can withdraw from (and perhaps even place in orders to convert into BTS that they can then send into the reserve pool)? I think that would be really useful.
« Last Edit: June 11, 2015, 11:22:29 pm by arhag »

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
Code: [Select]
uint32_t file_storage_fee_per_day; ///< the cost of leasing a file with 2^16 bytes for 1 day
?

 NOTE?  MadeSafe ? ...DNS?
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline Ander

  • Hero Member
  • *****
  • Posts: 3506
    • View Profile
  • BitShares: Ander
Market Orders can charge just $0.01 to place and then charge $0.20 when they get matched and be free to cancel. 

I hope that $0.20 charge can be for all partially matched amounts originating from the single placed order collectively, and not $0.20 each time there is a partial match (the number of which could be unbounded and out of the control of the user that placed the original order and pays the fees). That fact is also the reason why I think cancels should be free, since a single short order can be split to an unbounded number of short positions. Better yet would be to just get rid of the $0.20 fee, keep the $0.01 fee to place the order and also add a percentage fee like 0.1% or something (by the way is that what market_fee is and does it only apply to BTS?).

For a partially matched limit order, the fee needs to be the same percentage as the market order fee, imo. 


Fees for both limit and market should probably be something like 0.1% or 0.2% of the matched value, plus a tiny order placement/order change fee.  If someone gets their limit order executed in pieces over time, they should only pay the order placement fee once.


Of course, each of these values should probably be something decidable by shareholder vote!
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
Market Orders can charge just $0.01 to place and then charge $0.20 when they get matched and be free to cancel. 

I hope that $0.20 charge can be for all partially matched amounts originating from the single placed order collectively, and not $0.20 each time there is a partial match (the number of which could be unbounded and out of the control of the user that placed the original order and pays the fees). That fact is also the reason why I think cancels should be free, since a single short order can be split to an unbounded number of short positions. Better yet would be to just get rid of the $0.20 fee, keep the $0.01 fee to place the order and also add a percentage fee like 0.1% or something (by the way is that what market_fee is and does it only apply to BTS?).

Xeldal

  • Guest
Excellent.  +5%  ty

Glad to see this. Makes sense.

Offline Ander

  • Hero Member
  • *****
  • Posts: 3506
    • View Profile
  • BitShares: Ander
Fees to create a limit order or change a limit order should be the lowest possible, imo.  In all normal trading platforms, there is no fee for modifying your order, so charging a fee of any significance drives traders and market makers away from the service.  If it wasnt for the need to prevent spamming, I would say there should be no fee, but we can't have people eating up our 100k TPS with bot trading modification spam.

I think even 1 cent might be too much and we should strive for .1 cent.  Otherwise you are going to make people not want to run market maker bots.

Fees for executed trades can of course be higher.




Fees to publish feeds should also be extremely low, since we want feeds to be published often. 



I like that the market order fee is a percentage.  Many trading platforms have, for example, a 0.2% fee.  (Btc38, etc).  0.2% is a reasonable value for this, imo.  (And premium or lifetime account subscribers would get a discount to it).  Alternately we could try 0.1% to undercut competition.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline Riverhead


Third. I suspect these are all dials the delegates will be turning trying to strike the right balance. I'm pleased to see so many dials. It makes it so that even other chains using BitShares will likely have a different configuration.

Offline bytemaster

Transfer fees will be $0.20 (my proposal)  but that doesn't mean ALL fees for ALL operations are the same.

Market Orders can charge just $0.01 to place and then charge $0.20 when they get matched and be free to cancel. 

Account registration (for cheap names) can be just $0.01.   

I just wanted to throw that out there because many people seem to think there is only one "Transaction Fee", when in reality these are the fees that can be configured now:

Code: [Select]
      uint32_t key_create_fee; ///< the cost to register a public key with the blockchain
      uint32_t account_create_fee; ///< the cost to register the cheapest non-free account
      uint32_t account_len8_fee;
      uint32_t account_len7_fee;
      uint32_t account_len6_fee;
      uint32_t account_len5_fee;
      uint32_t account_len4_fee;
      uint32_t account_len3_fee;
      uint32_t account_len2_fee;
      uint32_t account_premium_fee;  ///< accounts with premium names; i.e. @ref is_cheap_name returns false
      uint32_t account_whitelist_fee; ///< the fee to whitelist an account
      uint32_t delegate_create_fee; ///< fixed fee for registering as a delegate; used to discourage frivioulous delegates
      uint32_t witness_withdraw_pay_fee; ///< fee for withdrawing witness pay
      uint32_t transfer_fee; ///< fee for transferring some asset
      uint32_t limit_order_fee; ///< fee for placing a limit order in the markets
      uint32_t short_order_fee; ///< fee for placing a short order in the markets
      uint32_t publish_feed_fee; ///< fee for publishing a price feed
      uint32_t asset_create_fee; ///< the cost to register the cheapest asset
      uint32_t asset_update_fee; ///< the cost to modify a registered asset
      uint32_t asset_issue_fee; ///< the cost to modify a registered asset
      uint32_t asset_fund_fee_pool_fee; ///< the cost to add funds to an asset's fee pool
      uint32_t asset_settle_fee; ///< the cost to trigger a forced settlement of a market-issued asset
      uint32_t market_fee; ///< a percentage charged on market orders
      uint32_t transaction_fee; ///< a base price for every transaction
      uint32_t data_fee; ///< a price per 1024 bytes of user data
      uint32_t signature_fee; ///< a surcharge on transactions with more than 2 signatures.
      uint32_t global_parameters_update_fee; ///< the cost to update the global parameters
      uint32_t membership_annual_fee; ///< the annual cost of a membership subscription
      uint32_t membership_lifetime_fee; ///< the cost to upgrade to a lifetime member
      uint32_t withdraw_permission_update_fee; ///< the cost to create/update a withdraw permission
      uint32_t create_bond_offer_fee;
      uint32_t cancel_bond_offer_fee;
      uint32_t accept_bond_offer_fee;
      uint32_t claim_bond_collateral_fee;
      uint32_t file_storage_fee_per_day; ///< the cost of leasing a file with 2^16 bytes for 1 day
      uint32_t vesting_balance_create_fee;
      uint32_t vesting_balance_withdraw_fee;
      uint32_t global_settle_fee;
      uint32_t worker_create_fee; ///< the cost to create a new worker
      uint32_t worker_delete_fee; ///< the cost to delete a worker
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.