bitshares1-core icon indicating copy to clipboard operation
bitshares1-core copied to clipboard

Expired short positions shouldn't accrue interest

Open theoreticalbts opened this issue 10 years ago • 5 comments

I think not charging interest to expired short positions is more "correct" behavior in terms of being in line with user expectations. And it will be a side effect of the way short interest is currently implemented.

But there should be a unit test to verify that this is, in fact, the case.

theoreticalbts avatar Jan 27 '15 23:01 theoreticalbts

So the owner will pay interest if she cover the short order manually, but pay nothing if she let it expire? Sounds unfair.

abitmore avatar Jan 28 '15 01:01 abitmore

I think he is saying there should be a CAP on interest. I disagree, interest should continue to accumulate even if the expired short is unable to get matched. This shouldn't happen given margin call and 110% above feed means that expiration can result in a short squeeze.

We need to verify that expired shorts only create a buy wall at the feed, where as margin called shorts can go down to 90% below the feed to get filled.

bytemaster avatar Jan 28 '15 14:01 bytemaster

market_engine::get_interest_owed() calculates it for any period based upon age_seconds.
age_seconds is determined by market_engine::get_current_cover_age() which can be more than BTS_BLOCKCHAIN_MAX_SHORT_PERIOD_SEC if there are no buy orders at or above the price feed thus I have confirmed that interest will accrue until the short is covered.

This may incentivize shorts to manually buy above the feed in an amount equal to the expected interest paid while waiting.

bytemaster avatar Jan 28 '15 15:01 bytemaster

First of all, the intent of this ticket was to task myself (or whoever decided to pick it up) to CREATE A UNIT TEST for how much interest short positions are charged after expiration. This ticket should remain open until there is:

  • A unit test showing an expired short including interest at various points in time
  • A link to that unit test in this ticket

Second, the referenced commit doesn't solve this issue, rather I think that commit is more relevant to #1277

Third, why the heck does that commit need to update FC, qt wallet and web wallet?

theoreticalbts avatar Jan 28 '15 22:01 theoreticalbts

We need to verify that expired shorts only create a buy wall at the feed, where as margin called shorts can go down to 90% below the feed to get filled.

I just want to make sure that the code is still checking whether an expired short should be margin called, correct? Meaning that as the price feed changes (thus changing the value of the collateral in BitAssets) and as the total BitAssets owed by the expired short changes (as interest accrues), the collateral ratio ((value of collateral in BitAssets) / (BitAsset quantity owed by short position)) will change, possibly falling below the 200% margin call threshold.

In that situation, the blockchain should change the status of the expired short cover into a margin-called short cover and be willing to buy up to 10% below the feed (in BitAsset/BTS price). If it does not, you risk allowing the system to gradually fall into a state of undercollateralization despite there being sufficient BitAsset sell orders at a price above 90% but below 100% of the price feed (in BitAsset/BTS price).

arhag avatar Feb 08 '15 07:02 arhag