Author Topic: Margin Call Explanation & Beware of Illiquid Markets with Low Margin  (Read 21521 times)

0 Members and 1 Guest are viewing this topic.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc

Offline svk

I still think most people don't understand how margin calls work in BTS 2.0, so in a bid to clarify things I've created a Google Doc that explains the mechanics of margin calls as per my current understanding.

I'd appreciate some input on the correctness, and if something's wrong I'll update it. You can add comments directly in the doc.

@alt @tonyk @Xeldal @bytemaster

https://docs.google.com/document/d/1h9E6N9VECh48NKRQGFoPQsSwfZXT4p_TD3LT3CqeTYk/edit?usp=sharing
Nice write-up, @svk
I've put my comments in the document.

I fully agree with your suggestions but they might not be relevant any more. AFAIK bytemaster has already fixed the margin call mechanism, it just awaits tests and a hard-fork to be implemented.
Thanks.

What have they been "fixed" to though?
https://github.com/cryptonomex/graphene/issues/436

OK so the effect of this is almost the same as my suggestion, main difference being that margin calls now happen much later with corresponding higher risk of defaults.

It's also not clear what happens to SQP  in this new configuration. You get margin called only when settlement price goes above your call price (in BTS/USD direction), but will you then still buy USD in the range [FEED, FEED * SQPR]? In other words, we delay the margin call, but still impose the "shorts quality of punishment" as tonyk puts it?
Worker: dev.bitsharesblocks

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
I still think most people don't understand how margin calls work in BTS 2.0, so in a bid to clarify things I've created a Google Doc that explains the mechanics of margin calls as per my current understanding.

I'd appreciate some input on the correctness, and if something's wrong I'll update it. You can add comments directly in the doc.

@alt @tonyk @Xeldal @bytemaster

https://docs.google.com/document/d/1h9E6N9VECh48NKRQGFoPQsSwfZXT4p_TD3LT3CqeTYk/edit?usp=sharing
Nice write-up, @svk
I've put my comments in the document.

I fully agree with your suggestions but they might not be relevant any more. AFAIK bytemaster has already fixed the margin call mechanism, it just awaits tests and a hard-fork to be implemented.
Thanks.

What have they been "fixed" to though?
https://github.com/cryptonomex/graphene/issues/436
BitShares committee member: abit
BitShares witness: in.abit

Offline svk

I still think most people don't understand how margin calls work in BTS 2.0, so in a bid to clarify things I've created a Google Doc that explains the mechanics of margin calls as per my current understanding.

I'd appreciate some input on the correctness, and if something's wrong I'll update it. You can add comments directly in the doc.

@alt @tonyk @Xeldal @bytemaster

https://docs.google.com/document/d/1h9E6N9VECh48NKRQGFoPQsSwfZXT4p_TD3LT3CqeTYk/edit?usp=sharing
Nice write-up, @svk
I've put my comments in the document.

I fully agree with your suggestions but they might not be relevant any more. AFAIK bytemaster has already fixed the margin call mechanism, it just awaits tests and a hard-fork to be implemented.
Thanks.

What have they been "fixed" to though?
Worker: dev.bitsharesblocks

jakub

  • Guest
I still think most people don't understand how margin calls work in BTS 2.0, so in a bid to clarify things I've created a Google Doc that explains the mechanics of margin calls as per my current understanding.

I'd appreciate some input on the correctness, and if something's wrong I'll update it. You can add comments directly in the doc.

@alt @tonyk @Xeldal @bytemaster

https://docs.google.com/document/d/1h9E6N9VECh48NKRQGFoPQsSwfZXT4p_TD3LT3CqeTYk/edit?usp=sharing
Nice write-up, @svk
I've put my comments in the document.

I fully agree with your suggestions but they might not be relevant any more. AFAIK bytemaster has already fixed the margin call mechanism, it just awaits tests and a hard-fork to be implemented.

Offline svk

I still think most people don't understand how margin calls work in BTS 2.0, so in a bid to clarify things I've created a Google Doc that explains the mechanics of margin calls as per my current understanding.

I'd appreciate some input on the correctness, and if something's wrong I'll update it. You can add comments directly in the doc.

@alt @tonyk @Xeldal @bytemaster

https://docs.google.com/document/d/1h9E6N9VECh48NKRQGFoPQsSwfZXT4p_TD3LT3CqeTYk/edit?usp=sharing
Worker: dev.bitsharesblocks

Offline merivercap

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
    • BitCash
I believe SQP rule is misguided and adds an unnecessary level of complication with ultimately no benefit.  Currently we are lying to shorts about where/when their positions will/can be called.

If your goal is to encourage shorts to put up more collateral, simply raise the minimum collateral requirement.
If your goal is to reduce dependence on the feed, increase liquidity.  Ill-liquid markets *should be heavily feed based.

If the information we give to the shorter is " your margin call price is feed price x "  then they should never be called if the feed price is above x.  Currently they can be called when the price (in all other markets) is upto 10% above x (their prescribed call price).  This is a terrible practice IMO.   Initially, shorts could be called upto an unbelievable 50% above their margin call price.

In effect SQP just raises the price at which shorts can be forced margin called.  regardless of whether the fair price/ feed  is above their prescribed margin call rate.

This really needs to be gotten rid of IMO.  Or the ACTUAL margin call rate needs to be communicated (Call rate * (1 + SQP percentage))

In nearly every way, I think the rules under bts1 for margin calls are preferable.

So the main thing is the discrepancy between your personal margin-call price displayed in the GUI and the actual margin-call execution price you can get on an ill-liquid market (10% or previously 50% above the feed).
And the problem is those two prices can be quite far from each other: you expect to be margin-called at price x but the margin call actually executes at price y.
Do I understand your point correctly?

That is certainly part of it.  It is not clear to the user that his margin call will be based on the bid, and not like prior BTS1 rules, based on the feed.   

I think the conclusion of this debate might be: why do we have a feed at all?  If you can't use SQP without liquidity, and if you have liquidity, you don't need a feed; What good is the feed? outside of a settlement rate which we claim should ideally never be necessary to use.

I have to admit, that basing the margin call on the bid (at the exchange, not from outside the exchange) makes sense and is how every exchange out there would do it, and rightfully so as they intend to remain solvent.  We just saw a margin event on polo as an example.  Obviously there are no feeds involved.  The problem is, an exchange would not likely open margin accounts to trade an asset that was not liquid, and our MPA SmartCoins can not exist without margin accounts.  Its unavoidable.  So to protect illiquid markets the margin call should be based on the feed...or the market should not be able to trade without some very large level market depth liquidity.  Which currently none of our MPA's qualify for and if they did the feed would never come into play especially at a 50% SQP.

In the case of massive liquidity, the feeds are mostly irrelevant and an SQP approach can work, but only because its unnecessary and irrelevant.

Given that margin accounts are by default required to have a functioning SmartCoin.  I believe more weight, not less, should be put on the feeds, to protect the backbone of the SmartCoin markets, until the market is so large that they are perhaps inconsequential.

Xeldal,
I agree with your sentiments.  There is an implicit agreement between short and long that the price feed is relevant to the settlement of the CFD.  The price feed is also more relevant especially when there is more liquidity in external exchanges.   Early on it is important to establish a good price feed and rely on it.   Otherwise we should eliminate the price feed all together like in the very original Bitshares.  Although revisiting a system with no price feed is an alternative, I'd rather explore the price feed alternative to it's fullest extent which means putting far more weight on it.  We should at this stage:

1) Set the SQP to 0% so that margin calls occur based on the price feed.
2) Use multiple exchanges including the internal exchange to form the price feed and weight each exchange based on trading volume.

That way the prices from external exchanges will be much more important in the early stages and much less so when internal liquidity starts to dominate. 
BitCash - http://www.bitcash.org 
Beta: bitCash Wallet / p2p Gateway: (https://m.bitcash.org)
Beta: bitCash Trade (https://trade.bitcash.org)

jakub

  • Guest
The forced margin call does not try to use any balance that you already have in your account, but will instead always buy on the open market.
We currently allow people to open positions that get margin called instantly. Any position at a ratio of less than 1.5 * 1.75 = 2.62 gets margin called right away which doesn't seem to be right.

@bytemaster, does the system really work like this?
We lose a lot in our users' eyes when we are not careful about all those little details.

jakub

  • Guest
I agree with @tonyk that we need to limit our discussion to the USD:BTS market, i.e. prices indicating how many BTS you need to pay for 1 USD, e.g. 250 BTS/USD.
This way shorts are those who actually have a short position, i.e. they have sold their USD and to close their collateral position they will need to buy it back in the future.
So BM's original drawing in OP, which is based on the opposite view, should not be part of the discussion, as it just adds to the confusion.

And I agree with @tbone that we need to differentiate between these two prices (and situations):
(1) Margin Call Trigger Price (MCTP), i.e. the price at which a margin call is triggered, bearing in mind that the trigger event occurs when MCTP gets above Your Personal Call Price (YPCP).
(2) Actual Buy-Back Price (ABBP), i.e. the price at which the actual buy-back is executed by the system once the margin call is triggered.

We absolutely need to distinguish between these two situations, as otherwise we end up having a paradox illustrated by the order-book shown below, an event which actually took place in October and put the shorts in an unacceptable price trap.

(Now I wonder if the situation above was actually considered by BM when he was designing the SQP concept - is it a bug or a feature?)

Regarding (1), i.e. MCTP:
I agree with @Xeldal that basing the MCTP on the lowest ask price (from the internal market) is a bad idea, as in a thin market the lowest ask cannot be really trusted.
BM's way to alleviate this weakness, achieved by including an additional restriction (i.e. the lowest ask needs to be below SQP to become a valid margin-call trigger) does not really help because:
- if we define SQP to be far from the feed (e.g. 50% above the feed) it does not force the longs to offer a decent exit price for the shorts when triggering a margin call,
- if we define SQP to be close to the feed (e.g. only 10% above the feed, as we have now) we could just as well rely on the feed itself, as having SQP at this low level does not make margin calls execution much more efficient.

This is how I propose to solve this problem: let's define MCTP as the lowest of these two:
(a) the external market's feed price (or a little above the feed, like 5% above the feed).
(b) the internal market's lowest ask price
This solution will protect us from being dependent entirely on the external feed (in case there are some technical issues with it). For a margin call to be triggered, both the lowest ask and the feed need to be above YPCP.
And once a margin call is triggered (i.e. MCTP gets above YPCP), ABBP needs to be established and this has nothing to do with MCTP - it can be much higher than MCTP, the only restriction is that it needs to be equal or above YPCP.

Regarding (2), i.e. ABBP:
I think I understand BM's intention to avoid those kinds of market limbos that we had in 0.x. A margin call should have a real chance to be executed immediately, even in a thin market. And this is where something like SQP (defined even as high as 50% above the feed) might make sense. It can render ABBP very bad for a short position holder but it will, at the same time, offer a predictable limit for the damage incurred. And that's the reality of shorting in a an ill-liquid market: when you allow yourself to be margin-called, the consequences can be very painful. But still for the whole market it's better to execute a margin call successfully (even at a very bad price for the shorter) than have this kind of limbo that we had in 0.x.

EDIT: To sum up, my conclusion is this: currently we have a serious flaw in the margin-call rules but this is not because SQP is such a bad concept.
The problem is that SQP is currently being misused, because it acts as both a margin-call trigger level and a margin-call execution level.
These two situations should be treated separately (as @tbone pointed it out) and SQP should only be used for the margin-call execution part, not the trigger part.
For the trigger part we should rely on the feed (or something very close to the feed), plus the lowest ask level as an extra safety feature.
« Last Edit: November 03, 2015, 02:21:59 pm by jakub »

Offline wallace

  • Sr. Member
  • ****
  • Posts: 215
    • View Profile
 +5%
What is crazy is to base your margin call price on the more thinner and illiquid market [read easier to manipulate by buying/selling]. The current rules chose the Dax prices/market to do that...
The dax has long ways to go before being more liquid than all BTS markets combined.
I have not understoodnd until now that all this crazy rules were an attempt to achieve exactly this even crazier goal - to use the less liquid market...
ohh my god.
give me money, I will do...

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
In effect SQP just raises the price at which shorts can be forced margin called.  regardless of whether the fair price/ feed  is above their prescribed margin call rate.

@Xeldal  -  I think your statement above is either incorrect, OR you're referring to something different than bytemaster here:

A margin call will occur any time the highest bid is less than the CALL PRICE and greater than SQP

This appears to mean that if the market goes against you and your collateral drops below the threshold (i.e. the highest bid goes below the call price) a margin call is triggered.  UNLESS the highest bid is BELOW the SQP.  In which case, no margin call is triggered. So it appears this is effectively saying that if the market has gotten too far away from the feed, something is wrong so let's not trigger a margin call.  This seems to makes sense as a safety measure for shorts.  And although the need for this appears that it would be much less likely in a liquid market, I don't see why you wouldn't still want it there as a safety net since you never know when a market will lose liquidity.

The problem I'm having is that people (perhaps including bytemaster) seem to be conflating 2 different concepts: 1) the price at which a margin call is triggered, and 2) the price at which the actual buyback can occur.  We just went over #1 i.e. how SQP affects the price at which a margin call gets triggered (or whether it gets triggered at all).  What about #2?  Below, bytemaster is clearly saying SQP can affect the price a short will actually pay to cover: 

The SQP price is the MOST that a margin call will pay to cover.   

This seems to be referring to the SQP as a CEILING and that the highest bid can't be HIGHER than the SQP.  But we've already established that for a margin call to be triggered to begin with, the highest bid MUST be higher than the SQP.  So either something is wrong here, or bytemaster misspoke and there is actually a second value that acts as a ceiling on the cover price (which I think would make sense).  Or maybe I'm missing something,

@Bytemаsteг - can you please she some light here?

@tbone,  Xeldal's explanation  IS correct!!!
What you are confused by [amongst score of others], is BM price quoting prices {he uses  4.45*10-6 houses per dollar when talking about prices}. His view, while not technically incorrect, turns everything upside down - above becomes below,  /1.75 becomes * 1.75 etc, etc.
« Last Edit: November 03, 2015, 02:47:38 am by tonyk »
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline tbone

  • Hero Member
  • *****
  • Posts: 632
    • View Profile
  • BitShares: tbone2
In effect SQP just raises the price at which shorts can be forced margin called.  regardless of whether the fair price/ feed  is above their prescribed margin call rate.

@Xeldal  -  I think your statement above is either incorrect, OR you're referring to something different than bytemaster here:

A margin call will occur any time the highest bid is less than the CALL PRICE and greater than SQP

This appears to mean that if the market goes against you and your collateral drops below the threshold (i.e. the highest bid goes below the call price) a margin call is triggered.  UNLESS the highest bid is BELOW the SQP.  In which case, no margin call is triggered. So it appears this is effectively saying that if the market has gotten too far away from the feed, something is wrong so let's not trigger a margin call.  This seems to makes sense as a safety measure for shorts.  And although the need for this appears that it would be much less likely in a liquid market, I don't see why you wouldn't still want it there as a safety net since you never know when a market will lose liquidity.

The problem I'm having is that people (perhaps including bytemaster) seem to be conflating 2 different concepts: 1) the price at which a margin call is triggered, and 2) the price at which the actual buyback can occur.  We just went over #1 i.e. how SQP affects the price at which a margin call gets triggered (or whether it gets triggered at all).  What about #2?  Below, bytemaster is clearly saying SQP can affect the price a short will actually pay to cover: 

The SQP price is the MOST that a margin call will pay to cover.   

This seems to be referring to the SQP as a CEILING and that the highest bid can't be HIGHER than the SQP.  But we've already established that for a margin call to be triggered to begin with, the highest bid MUST be higher than the SQP.  So either something is wrong here, or bytemaster misspoke and there is actually a second value that acts as a ceiling on the cover price (which I think would make sense).  Or maybe I'm missing something,

@Bytemаsteг - can you please she some light here?

jakub

  • Guest

Sqp must've been 291 yea, and it didn't execute because margin calls aren't allowed to buy cheaper than their call price, which would've been shown in the depth chart and in the status at the time of that picture.

If that's the case, than I agree with @tonyk - the longs can put the shorts in a trap and force them to surrender at a very bad price.
It requires coordination among the longs but in a thin market it is doable, as we can see it the example above.

Now I think it's a serious flaw which should be addressed by @bytemaster.

Thanks @tonyk, I think I finally got it.

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile

That is certainly part of it.  It is not clear to the user that his margin call will be based on the bid, and not like prior BTS1 rules, based on the feed.   

I think the conclusion of this debate might be: why do we have a feed at all?  If you can't use SQP without liquidity, and if you have liquidity, you don't need a feed; What good is the feed? outside of a settlement rate which we claim should ideally never be necessary to use.

I have to admit, that basing the margin call on the bid (at the exchange, not from outside the exchange) makes sense and is how every exchange out there would do it, and rightfully so as they intend to remain solvent.  We just saw a margin event on polo as an example.  Obviously there are no feeds involved.  The problem is, an exchange would not likely open margin accounts to trade an asset that was not liquid, and our MPA SmartCoins can not exist without margin accounts.  Its unavoidable.  So to protect illiquid markets the margin call should be based on the feed...or the market should not be able to trade without some very large level market depth liquidity.  Which currently none of our MPA's qualify for and if they did the feed would never come into play especially at a 50% SQP.

In the case of massive liquidity, the feeds are mostly irrelevant and an SQP approach can work, but only because its unnecessary and irrelevant.

Given that margin accounts are by default required to have a functioning SmartCoin.  I believe more weight, not less, should be put on the feeds, to protect the backbone of the SmartCoin markets, until the market is so large that they are perhaps inconsequential.

I think I'm getting the picture:
(1) if we have good liquidity the SQP concept is irrelevant as it never has a chance to be applied.
(2) If we have poor liquidity the SQP concept (together with basing the margin call on the internal bid) works badly as it disregards the feed whereas the feed is the only thing which we can rely on.

So the SQP concept is delusional in this sense: it is meant to protect the shorts from the effects of poor liquidity but it actually does the opposite - it cuts us off from the reliance on the feed when we need it the most.

What is crazy is to base your margin call price on the more thinner and illiquid market [read easier to manipulate by buying/selling]. The current rules chose the Dax prices/market to do that...
The dax has long ways to go before being more liquid than all BTS markets combined.
I have not understoodnd until now that all this crazy rules were an attempt to achieve exactly this even crazier goal - to use the less liquid market...
ohh my god.
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline svk





In the above example order book, you believe the sell orders below 291 make sense...more dangerously you have based you system on the assumption that people will just act like that...   irrationally.

I guess the yellow buy order at 291.24615 is a margin call order attempting to buy USD to close the collateral position.
Does anyone know why it could not execute while there were matching sell orders?
What was the SQP in this case? 291.24615?

Sqp must've been 291 yea, and it didn't execute because margin calls aren't allowed to buy cheaper than their call price, which would've been shown in the depth chart and in the status at the time of that picture.
Worker: dev.bitsharesblocks

jakub

  • Guest


In the above example order book, you believe the sell orders below 291 make sense...more dangerously you have based you system on the assumption that people will just act like that...   irrationally.

I guess the yellow buy order at 291.24615 is a margin call order attempting to buy USD to close the collateral position.
Does anyone know why it could not execute while there were matching sell orders?
What was the SQP in this case? 291.24615?

jakub

  • Guest

That is certainly part of it.  It is not clear to the user that his margin call will be based on the bid, and not like prior BTS1 rules, based on the feed.   

I think the conclusion of this debate might be: why do we have a feed at all?  If you can't use SQP without liquidity, and if you have liquidity, you don't need a feed; What good is the feed? outside of a settlement rate which we claim should ideally never be necessary to use.

I have to admit, that basing the margin call on the bid (at the exchange, not from outside the exchange) makes sense and is how every exchange out there would do it, and rightfully so as they intend to remain solvent.  We just saw a margin event on polo as an example.  Obviously there are no feeds involved.  The problem is, an exchange would not likely open margin accounts to trade an asset that was not liquid, and our MPA SmartCoins can not exist without margin accounts.  Its unavoidable.  So to protect illiquid markets the margin call should be based on the feed...or the market should not be able to trade without some very large level market depth liquidity.  Which currently none of our MPA's qualify for and if they did the feed would never come into play especially at a 50% SQP.

In the case of massive liquidity, the feeds are mostly irrelevant and an SQP approach can work, but only because its unnecessary and irrelevant.

Given that margin accounts are by default required to have a functioning SmartCoin.  I believe more weight, not less, should be put on the feeds, to protect the backbone of the SmartCoin markets, until the market is so large that they are perhaps inconsequential.

I think I'm getting the picture:
(1) if we have good liquidity the SQP concept is irrelevant as it never has a chance to be applied.
(2) If we have poor liquidity the SQP concept (together with basing the margin call on the internal bid) works badly as it disregards the feed whereas the feed is the only thing which we can rely on when we have poor liquidity.

So the SQP concept is delusional in this sense: it is meant to protect the shorts from the effects of poor liquidity but it actually does the opposite - it cuts us off from the feed when we need it the most.
« Last Edit: November 02, 2015, 09:35:57 pm by jakub »

Xeldal

  • Guest
I believe SQP rule is misguided and adds an unnecessary level of complication with ultimately no benefit.  Currently we are lying to shorts about where/when their positions will/can be called.

If your goal is to encourage shorts to put up more collateral, simply raise the minimum collateral requirement.
If your goal is to reduce dependence on the feed, increase liquidity.  Ill-liquid markets *should be heavily feed based.

If the information we give to the shorter is " your margin call price is feed price x "  then they should never be called if the feed price is above x.  Currently they can be called when the price (in all other markets) is upto 10% above x (their prescribed call price).  This is a terrible practice IMO.   Initially, shorts could be called upto an unbelievable 50% above their margin call price.

In effect SQP just raises the price at which shorts can be forced margin called.  regardless of whether the fair price/ feed  is above their prescribed margin call rate.

This really needs to be gotten rid of IMO.  Or the ACTUAL margin call rate needs to be communicated (Call rate * (1 + SQP percentage))

In nearly every way, I think the rules under bts1 for margin calls are preferable.

So the main thing is the discrepancy between your personal margin-call price displayed in the GUI and the actual margin-call execution price you can get on an ill-liquid market (10% or previously 50% above the feed).
And the problem is those two prices can be quite far from each other: you expect to be margin-called at price x but the margin call actually executes at price y.
Do I understand your point correctly?

That is certainly part of it.  It is not clear to the user that his margin call will be based on the bid, and not like prior BTS1 rules, based on the feed.   

I think the conclusion of this debate might be: why do we have a feed at all?  If you can't use SQP without liquidity, and if you have liquidity, you don't need a feed; What good is the feed? outside of a settlement rate which we claim should ideally never be necessary to use.

I have to admit, that basing the margin call on the bid (at the exchange, not from outside the exchange) makes sense and is how every exchange out there would do it, and rightfully so as they intend to remain solvent.  We just saw a margin event on polo as an example.  Obviously there are no feeds involved.  The problem is, an exchange would not likely open margin accounts to trade an asset that was not liquid, and our MPA SmartCoins can not exist without margin accounts.  Its unavoidable.  So to protect illiquid markets the margin call should be based on the feed...or the market should not be able to trade without some very large level market depth liquidity.  Which currently none of our MPA's qualify for and if they did the feed would never come into play especially at a 50% SQP.

In the case of massive liquidity, the feeds are mostly irrelevant and an SQP approach can work, but only because its unnecessary and irrelevant.

Given that margin accounts are by default required to have a functioning SmartCoin.  I believe more weight, not less, should be put on the feeds, to protect the backbone of the SmartCoin markets, until the market is so large that they are perhaps inconsequential.

jakub

  • Guest
I believe SQP rule is misguided and adds an unnecessary level of complication with ultimately no benefit.  Currently we are lying to shorts about where/when their positions will/can be called.

If your goal is to encourage shorts to put up more collateral, simply raise the minimum collateral requirement.
If your goal is to reduce dependence on the feed, increase liquidity.  Ill-liquid markets *should be heavily feed based.

If the information we give to the shorter is " your margin call price is feed price x "  then they should never be called if the feed price is above x.  Currently they can be called when the price (in all other markets) is upto 10% above x (their prescribed call price).  This is a terrible practice IMO.   Initially, shorts could be called upto an unbelievable 50% above their margin call price.

In effect SQP just raises the price at which shorts can be forced margin called.  regardless of whether the fair price/ feed  is above their prescribed margin call rate.

This really needs to be gotten rid of IMO.  Or the ACTUAL margin call rate needs to be communicated (Call rate * (1 + SQP percentage))

In nearly every way, I think the rules under bts1 for margin calls are preferable.

So the main thing is the discrepancy between your personal margin-call price displayed in the GUI and the actual margin-call execution price you can get on an ill-liquid market (10% or previously 50% above the feed).
And the problem is those two prices can be quite far from each other: you expect to be margin-called at price x but the margin call actually executes at price y.
Do I understand your point correctly?

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
I believe SQP rule is misguided and adds an unnecessary level of complication with ultimately no benefit.  Currently we are lying to shorts about where/when their positions will/can be called.

If your goal is to encourage shorts to put up more collateral, simply raise the minimum collateral requirement.
If your goal is to reduce dependence on the feed, increase liquidity.  Ill-liquid markets *should be heavily feed based.

If the information we give to the shorter is " your margin call price is feed price x "  then they should never be called if the feed price is above x.  Currently they can be called when the price (in all other markets) is upto 10% above x (their prescribed call price).  This is a terrible practice IMO.   Initially, shorts could be called upto an unbelievable 50% above their margin call price.

In effect SQP just raises the price at which shorts can be forced margin called.  regardless of whether the fair price/ feed  is above their prescribed margin call rate.

This really needs to be gotten rid of IMO.  Or the ACTUAL margin call rate needs to be communicated (Call rate * (1 + SQP percentage))

In nearly every way, I think the rules under bts1 for margin calls are preferable.
+ 1

@jakub - above you will have the pleaser to read my thoughts in way better English than I could have  ever managed... but yes Xelda is one that thinks straight and logically explains the issues.
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Xeldal

  • Guest
I believe SQP rule is misguided and adds an unnecessary level of complication with ultimately no benefit.  Currently we are lying to shorts about where/when their positions will/can be called.

If your goal is to encourage shorts to put up more collateral, simply raise the minimum collateral requirement.
If your goal is to reduce dependence on the feed, increase liquidity.  Ill-liquid markets *should be heavily feed based.

If the information we give to the shorter is " your margin call price is feed price x "  then they should never be called if the feed price is above x.  Currently they can be called when the price (in all other markets) is upto 10% above x (their prescribed call price).  This is a terrible practice IMO.   Initially, shorts could be called upto an unbelievable 50% above their margin call price.

In effect SQP just raises the price at which shorts can be forced margin called.  regardless of whether the fair price/ feed  is above their prescribed margin call rate.

This really needs to be gotten rid of IMO.  Or the ACTUAL margin call rate needs to be communicated (Call rate * (1 + SQP percentage))

In nearly every way, I think the rules under bts1 for margin calls are preferable. 

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
I think I got it now .. gonna try to put this on paper with some figures to make it more clear to others .. let's see if tony agrees with what I am writing down :D
Looking forward to it :)
Tony might be on to something but his inability to let go of the sarcastic & succinct style even for a moment is a big obstacle to understanding.

I can talk long and longer... but when the creator of this nonsense is silent... after causing real true supporters of his project to loose  thousands upon thousands of dollars, for no reason at all but just for him to be amused...it is not my place to talk or explain.

https://bitshares.openledger.info/#/account/tester12

Is this enough for you? The guy above lost about 1.2 mil of his 2.9 mil bts... in a single instance with no warning..And this is a straight loss of the tokens ...not just some run of the mill position depreciation due to price drop.


and yes, this was expected [predicted is a strong word for something about to happen with 100% certainty] :

ha-ha-ha

Ohh, I am sorry, tester12. :)

 My condolences.
"Flowers grow out of dark moments."

On this note I will shut up...
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline bytemaster

Is this right?


Dot file decision tree
Code: [Select]
digraph decision{
A [label="New Block"]
B [label="Is the highest bid (in USD/BTS) < SPP?", shape=box]
C [label="MARGIN CALLS NOT EXECUTED", shape=box]
D [label="Is the highest bid < margin call price?", shape=box]
E [label="MARGIN CALL EXECUTED AT HIGHEST BID", shape=box]

A -> B
B -> C [label="True"]
B -> D [label="False"]
D -> E  [label="True"]
D -> C  [label="False"]

}

I *think* you have this right assuming prices are in the "right" orientation USD / BTS and not "BTS/USD"
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 tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
lol

Let's protect the shorts to 5,000% or 50,000% by setting the SQP [shorts' protection price] to that level.

Hope this helps [a single person at least] to get it.
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline cube

  • Hero Member
  • *****
  • Posts: 1404
  • Bit by bit, we will get there!
    • View Profile
  • BitShares: bitcube
I can understand tony's response.  A number of supporters have lost a huge sum from this event.  We can justify for the experimental change to advance bts but not for the great pain these supporters felt.  They do not deserve any of it.
ID: bitcube
bitcube is a dedicated witness and committe member. Please vote for bitcube.

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
I think I got it now .. gonna try to put this on paper with some figures to make it more clear to others .. let's see if tony agrees with what I am writing down :D
Looking forward to it :)
Tony might be on to something but his inability to let go of the sarcastic & succinct style even for a moment is a big obstacle to understanding.

I can talk long and longer... but when the creator of this nonsense is silent... after causing real true supporters of his project to loose  thousands upon thousands of dollars, for no reason at all but just for him to be amused...it is not my place to talk or explain.

https://bitshares.openledger.info/#/account/tester12

Is this enough for you? The guy above lost about 1.2 mil of his 2.9 mil bts... in a single instance with no warning..And this is a straight loss of the tokens ...not just some run of the mill position depreciation due to price drop.


and yes, this was expected [predicted is a strong word for something about to happen with 100% certainty] :

ha-ha-ha

« Last Edit: October 30, 2015, 10:34:10 pm by tonyk »
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
Is this right?


Dot file decision tree
Code: [Select]
digraph decision{
A [label="New Block"]
B [label="Is the highest bid (in USD/BTS) < SPP?", shape=box]
C [label="MARGIN CALLS NOT EXECUTED", shape=box]
D [label="Is the highest bid < margin call price?", shape=box]
E [label="MARGIN CALL EXECUTED AT HIGHEST BID", shape=box]

A -> B
B -> C [label="True"]
B -> D [label="False"]
D -> E  [label="True"]
D -> C  [label="False"]

}
« Last Edit: October 29, 2015, 07:06:28 pm by maqifrnswa »
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

jakub

  • Guest
I think I got it now .. gonna try to put this on paper with some figures to make it more clear to others .. let's see if tony agrees with what I am writing down :D
Looking forward to it :)
Tony might be on to something but his inability to let go of the sarcastic & succinct style even for a moment is a big obstacle to understanding.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
I think I got it now .. gonna try to put this on paper with some figures to make it more clear to others .. let's see if tony agrees with what I am writing down :D

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
What are you suggesting should be changed, to make this wheel round? 

Not trying to discover and/or use new  and improved square wheels, comes to mind as a good starting point.
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Xeldal

  • Guest

Nothing is confusing, once you get the basic idea.
The "S Protection price" is protecting the shorts from buying cheap! So  if they are called they cannot buy cheap, they can only buy expensive.
That's the general  idea behind it!

PS
You are so  behind in the theory of the square wheels Xeroc. :)

I may be lost in your sarcasm.   I get that it is illogical for a bid to stay high, when he can lower his bid and force a margin call.  In a thin market this is easy.  A thick market would be more difficult.  Its not logical to lower your bid when there are other bids still above the margin call price;  You may never get filled.   All participants would need to play the same game, or you would have to sell into the bid till the margin call triggered, but this has a cost that may be more than the reward.

In addition, a short can always, at any time, manually close his position at "cheap"(when bid is higher than his Margin Call Price), instead of waiting for a forced liquidation at "expensive"(when bid falls below his Margin Call Price).   

I don't like the current rules with low liquidity because they are easily taken advantage of but I guess they make sense in protecting the system from there not being enough bid to cover a margin called short.  Its only partial protection though.  I'm not sure its worth the distortion it creates.  Essentially incentivizing the bid to stay just above the SQP rate.

What are you suggesting should be changed, to make this wheel round?  Should the short be called only when the feed drops below his margin call price filling all available bids down to the SQP rate(10%)?  essentially like we had in BTS1.   

I think so long as the markets determining the feeds are external to the Dex and greater in volume the old rule is more practical, but with greater systemic risk.  Once the internal markets are leading the feed, I think this issue goes away and really may be unnecessary.

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
The SQP defines the most that a margin position will ever be forced to pay to cover (that is it).   It is there only to protect against thin markets.
A margin position will be forced to sell its collateral anytime the highest offer to buy the collateral is less than the call price (USD/BTS).   

The market defines everything (as it should).
The market sets the value of BTS in terms of BitUSD based on the highest offer to buy BTS with BitUSD.
Once we know the market value, we can trigger margin calls.

There is ONE edge case and that is for thin markets.  In this edge case the market cannot define the value of BTS in terms of BitUSD.  This is where we use the SQP as the lower bound on the value of BTS in terms of BitUSD.

You still do not see how this whole theory of yours hangs on the market participants exhibiting illogical behaviour, do you?

I don't see the illogical behavior.  Please explain.

Do margin calls buy bitUSD left or right of the SQP in your figure abote (0.005 bitUSD/BTS)
if they only buy on the right hand side of the SQP than I do understand tony, because they only execute if there are no orders there ..
so I assume they buy on the left hand side of the SQP .. which would make them pay "more" than the SQP in BTS-terms to aquire bitUSD .. but you said is the "MOST they have to pay to cover" would be misleading since the best they can do (cheapest) is AT the SQP and it only gets more expensive the less orders/volume there are ..

Maybe that is what confuses tony (and me)!?

So, margin calls occure when the highest bid is less than the margin call price (which is a function of the SWAN price and the maintenance collateral ratio) AND the SQP crossed the margin called price and is thus left (read: smaller) of it ..

but WHERE do margin calls execute? which orders are bought at which prices and what are the limits for the margin call?
Nothing is confusing, once you get the basic idea.
The "S Protection price" is protecting the shorts from buying cheap! So  if they are called they cannot buy cheap, they can only buy expensive.
That's the general  idea behind it!

PS
You are so  behind in the theory of the square wheels Xeroc. :)
« Last Edit: October 28, 2015, 03:26:16 pm by tonyk »
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline Troglodactyl

  • Hero Member
  • *****
  • Posts: 960
    • View Profile
The SQP defines the most that a margin position will ever be forced to pay to cover (that is it).   It is there only to protect against thin markets.
A margin position will be forced to sell its collateral anytime the highest offer to buy the collateral is less than the call price (USD/BTS).   

The market defines everything (as it should).
The market sets the value of BTS in terms of BitUSD based on the highest offer to buy BTS with BitUSD.
Once we know the market value, we can trigger margin calls.

There is ONE edge case and that is for thin markets.  In this edge case the market cannot define the value of BTS in terms of BitUSD.  This is where we use the SQP as the lower bound on the value of BTS in terms of BitUSD.

You still do not see how this whole theory of yours hangs on the market participants exhibiting illogical behaviour, do you?

I don't see the illogical behavior.  Please explain.

Do margin calls buy bitUSD left or right of the SQP in your figure abote (0.005 bitUSD/BTS)
if they only buy on the right hand side of the SQP than I do understand tony, because they only execute if there are no orders there ..
so I assume they buy on the left hand side of the SQP .. which would make them pay "more" than the SQP in BTS-terms to aquire bitUSD .. but you said is the "MOST they have to pay to cover" would be misleading since the best they can do (cheapest) is AT the SQP and it only gets more expensive the less orders/volume there are ..

Maybe that is what confuses tony (and me)!?

So, margin calls occure when the highest bid is less than the margin call price (which is a function of the SWAN price and the maintenance collateral ratio) AND the SQP crossed the margin called price and is thus left (read: smaller) of it ..

but WHERE do margin calls execute? which orders are bought at which prices and what are the limits for the margin call?
My understanding is that margin calls only fill if the best offer to buy their collateral is asking for less than feed*mssr BTS per bitAsset unit, but more than the short's call price in BTS per bitAsset unit.

So if there is a low volume of margin calls, bitAsset holders should compete to fill them at a better price for the shorter.  If there are widespread margin calls then there's no need to compete, and bitAsset holders should all place their offers at the edge of feed*mssr. If the mssr is too high, then bitAsset holders can trigger widespread margin calls by all placing their offers at feed*mssr.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
The SQP defines the most that a margin position will ever be forced to pay to cover (that is it).   It is there only to protect against thin markets.
A margin position will be forced to sell its collateral anytime the highest offer to buy the collateral is less than the call price (USD/BTS).   

The market defines everything (as it should).
The market sets the value of BTS in terms of BitUSD based on the highest offer to buy BTS with BitUSD.
Once we know the market value, we can trigger margin calls.

There is ONE edge case and that is for thin markets.  In this edge case the market cannot define the value of BTS in terms of BitUSD.  This is where we use the SQP as the lower bound on the value of BTS in terms of BitUSD.

You still do not see how this whole theory of yours hangs on the market participants exhibiting illogical behaviour, do you?

I don't see the illogical behavior.  Please explain.

Do margin calls buy bitUSD left or right of the SQP in your figure abote (0.005 bitUSD/BTS)
if they only buy on the right hand side of the SQP than I do understand tony, because they only execute if there are no orders there ..
so I assume they buy on the left hand side of the SQP .. which would make them pay "more" than the SQP in BTS-terms to aquire bitUSD .. but you said is the "MOST they have to pay to cover" would be misleading since the best they can do (cheapest) is AT the SQP and it only gets more expensive the less orders/volume there are ..

Maybe that is what confuses tony (and me)!?

So, margin calls occure when the highest bid is less than the margin call price (which is a function of the SWAN price and the maintenance collateral ratio) AND the SQP crossed the margin called price and is thus left (read: smaller) of it ..

but WHERE do margin calls execute? which orders are bought at which prices and what are the limits for the margin call?
« Last Edit: October 28, 2015, 02:36:32 pm by xeroc »

jakub

  • Guest
@tonyk
Please express your thoughts in a more comprehensive way so that others can participate in the discussion.
You might be right about something important but unless you express yourself in a more verbose way, this looks like a private conversation meant only for those who are able to guess what you mean.

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile


In the above example order book, you believe the sell orders below 291 make sense...more dangerously you have based you system on the assumption that people will just act like that...   irrationally.



PS
In more general terms what you call "Short squeeze protection" is the complete opposite - It is the "Shorts' fuck up ratio" aka with what percentage exactly you can screw up the shorts, as per the system design.

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

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
So, I assume you do not agree that one, acting logically, will always take a better price for her trade  when offered a chance.


Put in other words - in this theory of yours,  all sellers have some sense of value they expect to get for whatever they are selling. Moreover this value judgment is independent and not effected by any objective signals from the reality they live in.
« Last Edit: October 25, 2015, 05:06:08 am by tonyk »
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
The SQP defines the most that a margin position will ever be forced to pay to cover (that is it).   It is there only to protect against thin markets.
A margin position will be forced to sell its collateral anytime the highest offer to buy the collateral is less than the call price (USD/BTS).   

The market defines everything (as it should).
The market sets the value of BTS in terms of BitUSD based on the highest offer to buy BTS with BitUSD.
Once we know the market value, we can trigger margin calls.

There is ONE edge case and that is for thin markets.  In this edge case the market cannot define the value of BTS in terms of BitUSD.  This is where we use the SQP as the lower bound on the value of BTS in terms of BitUSD.

You still do not see how this whole theory of yours hangs on the market participants exhibiting illogical behaviour, do you?

I don't see the illogical behavior.  Please explain.

well, the traders got it...minutes after the post (congrats to 850+ USD seller,btw ). But that is just an interesting observation, not why I am writing this.
-------------

Are you willing to accept a lemma:

if you are selling  something for 100 UDS [so much selling that you are ready and put in the order book], you will be more than willing to sell it for 120 USD [mind you faster]?
« Last Edit: October 23, 2015, 04:22:46 am by tonyk »
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
You still do not see how this whole theory of yours hangs on the market participants exhibiting illogical behaviour, do you?

I don't see the illogical behavior.  Please explain.

I think this is his point:  The market defines the value of BitUSD, however, in order to margin call someone has to be winning to (illogically) pay less for a BitUSD than the market defined.  What happens if the market is not thin, and 1 BitUSD = 1.15 USD worth of BTS? What is the reason someone should expect the price of BitUSD relative to USD to drop?

At the same time, I don't think it is illogical -- I think there is a reason to expect that BitUSD relative to USD will drop, and SQP is part of the reason. If 1 BitUSD > 1 USD, that means there are too few BitUSD. SQP means no BitUSD will be automatically destroyed (margin called), but people are still free to create BitUSD. The supply of BitUSD relative to USD is expected to increase, therefore the value of BitUSD relative to USD should drop.
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Offline bytemaster

The SQP defines the most that a margin position will ever be forced to pay to cover (that is it).   It is there only to protect against thin markets.
A margin position will be forced to sell its collateral anytime the highest offer to buy the collateral is less than the call price (USD/BTS).   

The market defines everything (as it should).
The market sets the value of BTS in terms of BitUSD based on the highest offer to buy BTS with BitUSD.
Once we know the market value, we can trigger margin calls.

There is ONE edge case and that is for thin markets.  In this edge case the market cannot define the value of BTS in terms of BitUSD.  This is where we use the SQP as the lower bound on the value of BTS in terms of BitUSD.

You still do not see how this whole theory of yours hangs on the market participants exhibiting illogical behaviour, do you?

I don't see the illogical behavior.  Please explain.
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 tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
The SQP defines the most that a margin position will ever be forced to pay to cover (that is it).   It is there only to protect against thin markets.
A margin position will be forced to sell its collateral anytime the highest offer to buy the collateral is less than the call price (USD/BTS).   

The market defines everything (as it should).
The market sets the value of BTS in terms of BitUSD based on the highest offer to buy BTS with BitUSD.
Once we know the market value, we can trigger margin calls.

There is ONE edge case and that is for thin markets.  In this edge case the market cannot define the value of BTS in terms of BitUSD.  This is where we use the SQP as the lower bound on the value of BTS in terms of BitUSD.

You still do not see how this whole theory of yours hangs on the market participants exhibiting illogical behaviour, do you?
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline bytemaster

The SQP defines the most that a margin position will ever be forced to pay to cover (that is it).   It is there only to protect against thin markets.
A margin position will be forced to sell its collateral anytime the highest offer to buy the collateral is less than the call price (USD/BTS).   

The market defines everything (as it should).
The market sets the value of BTS in terms of BitUSD based on the highest offer to buy BTS with BitUSD.
Once we know the market value, we can trigger margin calls.

There is ONE edge case and that is for thin markets.  In this edge case the market cannot define the value of BTS in terms of BitUSD.  This is where we use the SQP as the lower bound on the value of BTS in terms of BitUSD.

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
A margin call will occur any time the highest bid is less than the CALL PRICE and greater than SQP


The current rule makes the order book look silly and I think this should be changed to something like:

A margin call will occur any time the highest bid is greater than SQP and CALL PRICE is greater than SQP.

Edit: I remember there had been the same bug in BTS1 and we have it now again.
 
 
« Last Edit: October 21, 2015, 11:19:56 pm by botfund »

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
please use simple words to explain this ,
I think original intention is to make many people use this ,because there need market deep .
but I think less people can make it clear

and now in message board of btc38.com ,there are a little rumour that committee change parameter cause many people been margin .
BM can you explain the details ?



I like your font size selection!

+  1
« Last Edit: October 21, 2015, 09:00:15 am by tonyk »
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline BTSdac

  • Hero Member
  • *****
  • Posts: 1219
    • View Profile
  • BitShares: K1
please use simple words to explain this ,
I think original intention is to make many people use this ,because there need market deep .
but I think less people can make it clear

and now in message board of btc38.com ,there are a little rumour that committee change parameter cause many people been margin .
to my understand , it is not trust , but I don`t know the details
I try to understand it ,
1.SQP is the initially collateral , that is minimum initially collateral when people borrow BTA ? 
2.
Margin is called any time the HIGH BID is less than the CALL PRICE.    In other words anytime the highest offer to buy the collateral and pay off the debt is below the call price.
HIGH in above sentence is in BTS/BITUSD  or BITUSD/BTS?
BM can you explain the details ?
« Last Edit: October 21, 2015, 09:04:20 am by BTSdac »
github.com :pureland
BTS2.0 API :ws://139.196.37.179:8091
BTS2.0 API 数据源ws://139.196.37.179:8091

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
If you make it closer to the SWAN than the FEED then you lose the benefit of outside information provided by the price feed.  Namely, someone with high collateral already has a very low CALL price (derived from SWAN) .  It would also have the effect of disabling any possibility of doing a margin call between SWAN and SQP.

I'm not saying it should be closer to SWAN than FEED, just that SQP should be in units of SWAN, not FEED. That is because the amount of SQP you want is a function of market collateralization, not FEED. This way if collateralization changes, but feed price stays the same, SQP should also change.
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Offline Troglodactyl

  • Hero Member
  • *****
  • Posts: 960
    • View Profile
Cool, so now how do we vote on these parameters?

Currently by voting for witnesses who support the values you want.  But there's a pretty solid case for moving that to committee members and leaving the witness role more purely technical and neutral.  Moving those parameters to the committee would of course require an update.

Offline Troglodactyl

  • Hero Member
  • *****
  • Posts: 960
    • View Profile
Market competition will cause sellers of usd to move closer to feed.   Why let someone else pocket 1.5 when you are still happy with 1.4.   If you want to go short now you must sell at a price people will but

This is not how the system works.  There is no reason to compete to sell assets cheaper than the MSSR level as long as there are active margin calls because orders will be matched at MSSR.  If MSSR is 150% as it was before, that guarantees that there will never be liquidity near the feed, which then causes ridiculously high collateral requirements because the market is illiquid.  Then those additional margin calls caused by the inflated collateral requirement flood the market with BTS at prices no one would sell at by choice and crash the price, causing a cascade of additional margin calls.

Offline Chronos

Market competition will cause sellers of usd to move closer to feed.   Why let someone else pocket 1.5 when you are still happy with 1.4.
In theory, yes.

In practice, why pocket 1.5 when you could pocket 1.6? There is no enforcing mechanism for an upper bound to bitUSD, as far as I know.

Offline sittingduck

  • Sr. Member
  • ****
  • Posts: 246
    • View Profile
Market competition will cause sellers of usd to move closer to feed.   Why let someone else pocket 1.5 when you are still happy with 1.4.   If you want to go short now you must sell at a price people will but

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
transwiser is the best gateway for bitCNY, bitcrab borrow bitCNY with BTS from blockchian to support the gateway,
now maybe he will meet a big problem, he can't get enough bitCNY to cover short position, and his BTS will sell to others at price 1/1.5
why he need to take this risk? he never buy BTS with bitCNY, he just do business between bitCNY and CNY,
I tell him this is a business with tiny risk, but now, I found that  I have cheat him much.
 is this the stable peg asset you want?
« Last Edit: October 17, 2015, 04:48:56 am by alt »

Offline topcandle

If we required 3 times collateral wouldn't this all be irrelevant?
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline Troglodactyl

  • Hero Member
  • *****
  • Posts: 960
    • View Profile
What is the solution?  If we had more buy side pressure would that help?
no one will buy BTS with bitUSD at feed price when you know the reserve BTS is sell at price /1.5
the solution is to adjust the sell price for reserve to a reasonable premium, I think it should more than 1/1.1

I get that no one is going to buy it.  I guess I am still just unsure about what is going wrong.  I have a hard time believing that the system was designed to make bitusd $1.5

Yeah.  That's a major design flaw.  Setting the SQP to 1 or near 1 may stop the hemorrhaging and stabilize the market long enough to have a chance of fixing it.

EDIT: That or stop publishing feeds entirely.
« Last Edit: October 17, 2015, 02:34:09 am by Troglodactyl »

Offline Moon

  • Full Member
  • ***
  • Posts: 155
    • View Profile

Offline puppies

  • Hero Member
  • *****
  • Posts: 1659
    • View Profile
  • BitShares: puppies
What is the solution?  If we had more buy side pressure would that help?
no one will buy BTS with bitUSD at feed price when you know the reserve BTS is sell at price /1.5
the solution is to adjust the sell price for reserve to a reasonable premium, I think it should more than 1/1.1

I get that no one is going to buy it.  I guess I am still just unsure about what is going wrong.  I have a hard time believing that the system was designed to make bitusd $1.5
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline liondani

  • Hero Member
  • *****
  • Posts: 3737
  • Inch by inch, play by play
    • View Profile
    • My detailed info
  • BitShares: liondani
  • GitHub: liondani
look what they are posting on poloniex trollbox!

londonwhale: mindphlux, is dumping: http://imgur.com/du63Pkl

Offline liondani

  • Hero Member
  • *****
  • Posts: 3737
  • Inch by inch, play by play
    • View Profile
    • My detailed info
  • BitShares: liondani
  • GitHub: liondani
in the meanwhile we are already  @ 0.00001500 BTC ...

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
What is the solution?  If we had more buy side pressure would that help?
no one will buy BTS with bitUSD at feed price when you know the reserve BTS is sell at price /1.5
the solution is to adjust the sell price for reserve to a reasonable premium, I think it should more than 1/1.1

Offline puppies

  • Hero Member
  • *****
  • Posts: 1659
    • View Profile
  • BitShares: puppies
What is the solution?  If we had more buy side pressure would that help?
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
you fear about black swan, what will happen when black swan? 1 bitusd=0.5 usd?
look at the market now, bid1 price is 209BTS/USD, ask1 price is 333BTS/USD, how much will you sold your BITUSD?
1bitUSD=1.5USD now.
it's much worse than black swan.
bitUSD will die, bitCNY will die.

Offline bytemaster

This addresses one of my previous rants about the supply-side of bitassets. From the supply-side approach, I think it illustrates that SQP should be a percentage of SWAN not FEED.

1) When BID < (CALL=debt/collatoral*.175), then a forced margin call is made which destroys a bitasset.
2) During a short squeeze, 1 bitA is worth more than 1 corresponding asset (e.g., 1 bitUSD > 1 USD). That means there is an under-supply of bitA. When in under-supply, avoid destroying bitassets. In fact, people should have an incentive to short above the highest bid since they are being paid a premium [footnote].
3) Since bitA should not be destroyed, margin calls should be avoided until DEBT/COLLATERAL=1, that is, the SWAN value. SQP should enforce this.

Therefore, SQP should be a function of SWAN. You want it as close to SWAN as possible while still giving a cushion to force collatoralization and avoid the swan. Since FEED and SWAN are not functions of each other, setting SQP to a fraction of FEED doesn't necessarily perform proper squeeze protection, and in fact could potentially push the short squeeze in the wrong direction by destroying bitA that are already overvalued.




[footnote] Pricing bit assets is becoming a little clearer. The system enforces:
SWAN < bitUSD/BTS  < USD_FEED
A/USD_FEED < bitUSD/BTS < USD_FEED
where A is the least collateralize debt/collateral ratio (in units of bitA/BTS)

So there are two arbitrage opportunities:
If I think USD_FEED should go down (that is BTS value increasing), I want to short at USD_FEED so I make a profit no matter what (or at worst, break even).

If I think USD_FEED will increase (BTS value decrease), I want to buy bitA at close to SWAN as I can, as I will make a profit no matter what (or at worst, break even).

Therefore, as long as BTS is increasing in value (i.e., making a profit), I will want to short as close to USD_FEED as I can get.

If you make it closer to the SWAN than the FEED then you lose the benefit of outside information provided by the price feed.  Namely, someone with high collateral already has a very low CALL price (derived from SWAN) .  It would also have the effect of disabling any possibility of doing a margin call between SWAN and SQP.   
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 svk

I've removed parts of my earlier explanation which was incorrect, I hope you won't blame for getting confused cause this is complicated and BM's explanations actually made me even more confused. I believe I now have it right in the GUI thanks to alt, should go live later today.

One thing that worries me is that it seems we currently allow people to open positions that get margin called instantly. Any position at a ratio of less than 1.5 * 1.75 = 2.62 gets margin called right away which doesn't seem to be right. Please correct me if that's wrong.
Worker: dev.bitsharesblocks

Offline Average Guy on Street

  • Jr. Member
  • **
  • Posts: 47
    • View Profile
I really hope an expert teacher will come along to produce a series of instructional videos to teach how the AVERAGE person can get into Bitshares -> from changing their fiat to crypto - >to setting up a Bitshares wallet -> to becoming a successful investor through the Bitshares Market. Teaching all the critical terminology/concepts of each step along the way.

I expected Bitshares TV to do this, however it only ended up being a buzz word marketing effort.

In my opinion Great Educational Resources along with Simple UX design are the most important factors for user adoption.

Offline maqifrnswa

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
This addresses one of my previous rants about the supply-side of bitassets. From the supply-side approach, I think it illustrates that SQP should be a percentage of SWAN not FEED.

1) When BID < (CALL=debt/collatoral*.175), then a forced margin call is made which destroys a bitasset.
2) During a short squeeze, 1 bitA is worth more than 1 corresponding asset (e.g., 1 bitUSD > 1 USD). That means there is an under-supply of bitA. When in under-supply, avoid destroying bitassets. In fact, people should have an incentive to short above the highest bid since they are being paid a premium [footnote].
3) Since bitA should not be destroyed, margin calls should be avoided until DEBT/COLLATERAL=1, that is, the SWAN value. SQP should enforce this.

Therefore, SQP should be a function of SWAN. You want it as close to SWAN as possible while still giving a cushion to force collatoralization and avoid the swan. Since FEED and SWAN are not functions of each other, setting SQP to a fraction of FEED doesn't necessarily perform proper squeeze protection, and in fact could potentially push the short squeeze in the wrong direction by destroying bitA that are already overvalued.




[footnote] Pricing bit assets is becoming a little clearer. The system enforces:
SWAN < bitUSD/BTS  < USD_FEED
A/USD_FEED < bitUSD/BTS < USD_FEED
where A is the least collateralize debt/collateral ratio (in units of bitA/BTS)

So there are two arbitrage opportunities:
If I think USD_FEED should go down (that is BTS value increasing), I want to short at USD_FEED so I make a profit no matter what (or at worst, break even).

If I think USD_FEED will increase (BTS value decrease), I want to buy bitA at close to SWAN as I can, as I will make a profit no matter what (or at worst, break even).

Therefore, as long as BTS is increasing in value (i.e., making a profit), I will want to short as close to USD_FEED as I can get.
« Last Edit: October 16, 2015, 03:04:03 pm by maqifrnswa »
maintains an Ubuntu PPA: https://launchpad.net/~showard314/+archive/ubuntu/bitshares [15% delegate] wallet_account_set_approval maqifrnswa true [50% delegate] wallet_account_set_approval delegate1.maqifrnswa true

Xeldal

  • Guest
The CALL PRICE is unique to every user and depends upon their debt / collateral ratio.      It has nothing to do with the feed.

The user is in direct control of their CALL PRICE and it will never change on them unless they update their position.

The SQP price is the MOST that a margin call will pay to cover.   

Margin is called any time the HIGH BID is less than the CALL PRICE.    In other words anytime the highest offer to buy the collateral and pay off the debt is below the call price.

What prevents someone selling down the BID below any number or individual CALL PRICE just to collect all the forced liquidation at SQP.  Sounds like an easy <50% discount given how thin the internal book is compared to everything the feed is based on. 

So regardless of the actual price from the feed, I can be force liquidated at 50% below the the feed simply because noone on the internal market has a high enough bid.  I think i understand the need for this type of solvency protection but it seems really dangerous and easy to manipulate.  my apologies if I simply don't understand it.

Offline topcandle

Is there a list that shows who has the lowest swan price?  Ranked to the highest swan price.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline bytemaster

The CALL PRICE is unique to every user and depends upon their debt / collateral ratio.      It has nothing to do with the feed.

The user is in direct control of their CALL PRICE and it will never change on them unless they update their position.

The SQP price is the MOST that a margin call will pay to cover.   

Margin is called any time the HIGH BID is less than the CALL PRICE.    In other words anytime the highest offer to buy the collateral and pay off the debt is below the call 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 bytemaster

Yes, intitial = SQP, and no the engine won't allow you to open margin positions with collateral below the maintenance ratio which would get you margin called. You can however very easily get margin called if you have low collateral ratio, and when you do an automatic buy order will be placed that will execute up to feed price * 1.5!! This already happened to someone yesterday, and to make things worse the forced margin call does not try to use any balance that you already have in your account, but will instead always buy on the open market.

What complicates the matter (and that I didn't know until yesterday) is that the call price for any given asset is independent of the feed price, it only depends on the total debt and collateral of that asset, and the maintenance ratio. For example, the call price of the CNY:BTS market is currently 47.45 BTS/CNY, while the settlement price (feed * SQP) is at 49.47 BTS/CNY. For USD:BTS the call price is 365.42560 BTS/BTS and settlement price (feed + SQP) is 314.35000 BTS/USD, which is the similar to BM's graph.

I have an update of the GUI partially done that will address this and always show the current call price of that market, in the Exchange as well as the modal used to adjust margin positions. Until that's out I'd advise caution in opening margin positions.


Please stop redefining terms, anyone who reads this post will not get an accurate picture.
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 alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
witness please update your price feed, set parameter short_squeeze_ratio between 1001 to 1100.
this is important. please update soon.
https://bitsharestalk.org/index.php/topic,18852.msg245870.html#msg245870

jakub

  • Guest
Why I was called even if my call price is 600K? Could be a problem in feeds (4 hour ago)?

We should definitely have a history of price feeds in the GUI, otherwise there is no easy way to verify if the system works correctly.
A similar thing happened to me but I played with a small amount so I did not bother to investigate. But even if I wanted to investigate I'd have no data to compare it with (unless it is there in the GUI but I cannot find it).

Also, I'd suggest the price feed to become part of the market history chart.
It could be in the form of a thin gray line in the background but it would offer a valuable context for the actual trades happening on the blockchain.

Offline topcandle

It looks like you were margin called at 1.50 SQP. I do not understand it though why this is happening.

Aren't all margin calls at 1.50 collateral leverage?
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline mindphlux

  • Sr. Member
  • ****
  • Posts: 232
    • View Profile
It looks like you were margin called at 1.50 SQP. I do not understand it though why this is happening.
Please consider voting for my witness mindphlux.witness and my committee user mindphlux. I will not vote for changes that affect witness pay.

Offline spartako

  • Sr. Member
  • ****
  • Posts: 401
    • View Profile
I don't understand the behaviour that happened to me in the GOLD market.

I have this collateral account: https://bitshares.openledger.info/#/account/gold-collateral-holder-30
I have quite good collateral ratio: 2.44 but an order was filled 4 hour ago similar to a margin call (at very expensive price: 370K where the feed is 246K)
How can I understand this?

Feed price: 246950
Margin Call Price: 370425
Maintenance Call Price: 432162
Your Call Price: 601215

Why I was called even if my call price is 600K? Could be a problem in feeds (4 hour ago)?
wallet_account_set_approval spartako

Offline svk

Yes, intitial = SQP, and no the engine won't allow you to open margin positions with collateral below the maintenance ratio which would get you margin called. You can however very easily get margin called if you have low collateral ratio, and when you do an automatic buy order will be placed that will execute up to feed price * 1.5!! This already happened to someone yesterday, and to make things worse the forced margin call does not try to use any balance that you already have in your account, but will instead always buy on the open market.

I have an update of the GUI partially done that will address this and always show the current call price of that market, in the Exchange as well as the modal used to adjust margin positions. Until that's out I'd advise caution in opening margin positions.

Edit: Removed incorrect info based on misunderstanding
« Last Edit: October 16, 2015, 03:07:17 pm by svk »
Worker: dev.bitsharesblocks

Offline Troglodactyl

  • Hero Member
  • *****
  • Posts: 960
    • View Profile
Code: [Select]
Publish feed
Publisher in.abit
Asset USD
Initial collateral ratio 1.50
Collateral maintenance ratio 1.75
Core rate 208.299050781 BTS/USD
Settlement price 208.299050781 BTS/USD
Fee 1 BTS

So "Initial collateral ratio" = "SQP" and "Collateral maintenance ratio" = "Call ratio"?

In the example feed published above, is the initial required ratio supposed to be less than the ratio that must be maintained?  Wouldn't that allow people to open positions that will be called instantly?

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline bytemaster



A margin call will occur any time the highest bid is less than the CALL PRICE and greater than SQP

FEED = Settlement Price
SWAN = DEBT / COLLATERAL  - the point at which the network is insolvent.
CALL   = SWAN * 1.75
SQP   = FEED / 1.5

1.75 and 1.5 are specified as two parameters to the price feed. 

If you would like the feed to provide additional protection to the shorts, then ask the witnesses to adjust their feed publishing scripts to use SQP of FEED / 1.1.

Just beware that the consequence of protecting the shorts against thin markets is the following:

1. Shorts will end up posting less collateral
2. Greater dependence upon the feed vs the market
3. If there are no bids above the SQP price then margin will not get called even if the Feed Price is below the Call 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.