Stacked auction triggers for perp markets

New price monitoring auction configuration suggestion for pepr markets

Following success of the stacked triggers setup on the HLP and EGLP points futures markets we tested what a similar setup may achieve on the other perpetual futures markets (BTC, ETH, … ).

The purpose of price monitoring auctions is to protect markets from price moves that are, in some sense, not representative of overall price sentiment amongst all participants. Longer auctions on one hand give everyone longer to react to any price move but on the other hand during the auctions trades are not executed exposing participants and the system to the risk associated with price moves, should they be confirmed.

For this purpose it is possible to stack several auction triggers on top of each other; each trigger individually leads to only a relatively short auction but if the uncrossing price of the auction is out of bounds of the next trigger, the auction is extended. If on the other hand, the indicative uncrossing price is within bounds of the next trigger the auction is resolved and continuous trading resumes quickly.

Proposed auction configuration

"priceMonitoringParameters": {
            "triggers": [
                {
                    "horizon": "21600",
                    "probability": "0.9999999",
                    "auctionExtension": "3600",
                },
                {
                    "horizon": "21600",
                    "probability": "0.9999999",
                    "auctionExtension": "3600",
                },
                {
                    "horizon": "21600",
                    "probability": "0.9999999",
                    "auctionExtension": "3600",
                },
                {
                    "horizon": "21600",
                    "probability": "0.9999999",
                    "auctionExtension": "3600",
                },
                {
                    "horizon": "21600",
                    "probability": "0.9999999",
                    "auctionExtension": "3600",
                },
                {
                    "horizon": "21600",
                    "probability": "0.9999999",
                    "auctionExtension": "3600",
                },
                {
                    "horizon": "4320",
                    "probability": "0.9999999",
                    "auctionExtension": "900",
                },
                {
                    "horizon": "4320",
                    "probability": "0.9999999",
                    "auctionExtension": "900",
                },
                {
                    "horizon": "4320",
                    "probability": "0.9999999",
                    "auctionExtension": "900",
                },
                {
                    "horizon": "4320",
                    "probability": "0.9999999",
                    "auctionExtension": "900",
                },
                {
                    "horizon": "1440",
                    "probability": "0.9999999",
                    "auctionExtension": "450",
                },
                {
                    "horizon": "1440",
                    "probability": "0.9999999",
                    "auctionExtension": "450",
                },
                {
                    "horizon": "1440",
                    "probability": "0.9999999",
                    "auctionExtension": "450",
                },
                {
                    "horizon": "1440",
                    "probability": "0.9999999",
                    "auctionExtension": "450",
                },
                {
                    "horizon": "360",
                    "probability": "0.9999999",
                    "auctionExtension": "75",
                },
                {
                    "horizon": "360",
                    "probability": "0.9999999",
                    "auctionExtension": "75",
                },
                {
                    "horizon": "360",
                    "probability": "0.9999999",
                    "auctionExtension": "75",
                },
                {
                    "horizon": "360",
                    "probability": "0.9999999",
                    "auctionExtension": "75",
                },
            ]

Resulting triggers example for BTC/USDT perp

The new trigger configuration allows for auctions which can be exited “early” should the indicative price return to a sensible value.

Without the multiple trigger setup, these shorter 2m30s and 1m15s auctions would have been 5 minutes.

Backtesting results

Simulations of the BTC/USDT perpetual market using historical Bitcoin prices shows that with the new triggers, auctions are only triggered during extremely volatile periods.

In this one week period, auctions are triggered on four occasions during volatile periods but never last more than 450 seconds (auction lengths range from 75 - 450 seconds).

This 7m30s auction was “exited early” as the additional triggers were not broken at the end of the auction. Would have previously been a 30m auction.

1 Like

This is what the triggers will look like on BTC/USDT perp with the above setting

2 Likes

This makes a lot of sense to me.

Ideally a market is only ever in auction if the alternative might be worse, i.e. manipulation, flash crashes, and what are sometimes known as “scam wicks”.

This wouldn’t reduce the protection from those as far as I can tell but would mean much less time spent in auctions.