vegaprotocol / specs

Specs, designs and requirements 🦔
MIT License
7 stars 2 forks source link

Auction mark prices #202

Open ashleyvega opened 4 years ago

ashleyvega commented 4 years ago

In GitLab by @tamlyn10 on Jan 21, 2020, 10:37

What do we do when there is wide liquidity (i.e. no crosses)

ashleyvega commented 4 years ago

In GitLab by @tamlyn10 on Jan 21, 2020, 10:37

changed the description

edd commented 4 years ago

Ref #256

barnabee commented 4 years ago

@tamlyn10 @davidsiska-vega can you confirm if you think we need a mark price in an auction, I have imagined not and everything is in "suspended animation" during the call period and MTMed, etc. after uncrossing.

Do you agree? Am I missing something?

Feel free to close if you're comfortable we don't need a mark price in auctions or comment otherwise.

tamlyn10 commented 4 years ago

@barnabee I think that yeah we won't mark to market people until after the crossing.

But what if the crossing isn't possible? For frequent batch, that's no problem I guess as we go into another period. For protective auctions, we probably need to make them repeat until uncrossing occurs?

@witgaw does the price protection spec outline what happens if the protective auction doesn't cross?

witgaw commented 4 years ago

It doesn't, in fact I'm not entirely clear on how we exit the auction mode with regards to price monitoring - wrote what I thought makes sense, but marked it with a TODO for others to verify and comment.

barnabee commented 4 years ago

IMO price monitoring ends at the defined time when no more triggers are hit. That is:

  1. We enter an auction initially by hitting the first trigger (some maximum move over a defined sliding window period). It lasts for a set duration defined with the trigger.
  2. If the new price post-auction would trip the second trigger (a larger allowable move over a larger sliding window), then the auction does not end, it is extended by the duration defined in the second trigger.
  3. Repeat 2 until no more triggers or an uncrossing price occurs that doesn't trip the next trigger and we return to normal trading.

Note: IMO it doesn't matter if no trades [would] occur in the uncrossing, we use the last traded price going in (which will be pre-move) in that case. Low liqudity is handled by liquidity monitoring and if liqudiity monitoring would be triggered by the uncrossing OR exiting of price monitoring then we transition to a liquidity monitoring auction instead of returnign to normal trading.

See also comments on the PM spec: https://github.com/vegaprotocol/product/pull/275