VNP-24 Update Margin Scaling Factors to align UX with CEXs

With this proposal I intend to start some discussion on the modification of the market.margin.scalingFactors network parameter. The current values for these scaling factors are as follows:

image

The main scaling factor that has caught my attention is the initial_margin scaling factor. With a value of 1.5 this means that when you open a position on Vega an amount of collateral equal to 1.5 * maintenanceMargin is transferred into your margin account for that market. Assuming you have no more collateral in your general account (degeneracy), this position will be closed out when the balance of margin decreases by ~33.3%. On CEXs this value is generally 50% since they use an initial margin scaling factor of 2. This means that speculative traders on Vega get liquidated after a price move that is smaller than what they come to expect from trading on CEXs with the same initial leverage. This was reported by multiple participants in the Vega Mainnet Sims a while back.

I propose that to align the UX of speculative trading on Vega with that of CEXs we increase the value of the initial_margin scaling factor to 2. This would require that the collateral_release factor also be increased accordingly.

Here are my proposed values for these scaling factors:

{
    "search_level": 1.2,
    "initial_margin": 2.0,
    "collateral_release": 2.4
}

Given that modifying these parameters in such a way will reduce the initial leverage available to traders on Vega. I think we should also consider modifying the risk models of existing markets to allow greater leverage. I will create a separate forum post for discussion of that topic.

Full Proposal JSON:

{
  "rationale": {
    "title": "VNP-24 - Update Margin Scaling Factors to align UX with CEXs",
    "description": "This proposal requests to modify the `market.margin.scalingFactors` network parameter to better align the UX of trading on Vega with that of Centralised Exchanges. The current value of 1.5 for the `initial_margin` scaling factor results in higher initial leverage being available on Vega relative to the initial leverage available on CEXs, this further results in speculative traders being liquidated at an earlier price than they expect for their chosen level of leverage. This proposal proposes the following value for the `market.margin.scalingFactors` param: { \"search_level\":1.2, \"initial_margin\":2.0, \"collateral_release\":2.4,  }. Full discussion available on the forum: https://community.vega.xyz/t/vnp-24-update-margin-scaling-factors-to-align-ux-with-cexs/4404"
  },
  "terms": {
    "updateNetworkParameter": {
      "changes": {
        "key": "market.margin.scalingFactors",
        "value": "{ \"search_level\": 1.2, \"initial_margin\": 2.0, \"collateral_release\": 2.4 }"
      }
    },
    "closingTimestamp": 1702728000,
    "enactmentTimestamp": 1702728000
  }
}
1 Like

Sounds sensible to me :+1:

I think this makes sense, together with the other proposal to adjust the risk parameters to allow for greater leverage to compensate for this.

Sorry— I’m late to the party having spent a bunch of time travelling to meet and run events with our community in Korea over the last couple of weeks.

However I have some significant reservations about using a change like this for what I understand to be the purpose described, so I will set them out here anyway. Whether that impacts the fate of this proposal or just provides food for thought for future changes, I’ll let y’all decide…

This parameter change doesn’t make a lot of sense to me, I don’t think it is the right way to achieve what seems to be a desired UX outcome in Console.

I read the main issue here as being that users are used to only being allowed to take half of the maximum leverage allowed for a position, so that there is a larg(er) buffer between the most leveraged opening state of a position and where it will be closed out. This has the impact that users who don’t understand their position well and pay attention to liquidation price may be surprised how little the price can move before they are liquidated, if they take close to the largest position their collateral will allow.

I see a few problems with using this proposed change to address that problem:

  1. While it may seem reasonable at, say 40x leverage to be allocating a position at 20x, because that’s still a pretty small move to liquidation, it is less clear that it is reasonable to require positions on a market offering 2x leverage (for example) to be fully collateralised (which the 2.0 initial margin facotr implies).

  2. This is not something that universally affects all traders in the same way. For example:

    • some traders take very short lived intraday positions and may value the capital efficiency of getting close to the maximum leverage allowed by the risk model;

    • a trader doing a pairs trade (or some other explicitly cross-margined strategy may expect to build offsetting margin against losses from gains in other markets, and ring-fencing so much initial margin could seriously reduce their capital efficiency;

    • algorithmic traders may calculate and adjust their siziing and leverage based on available data in order to maximise capital effiency within their risk tolerance, a strategy which would again be impacted quite negatively by this change;

    • etc.…

  3. The described problem sounds entirely like a UI/UX concern from the description above (“speculative traders on Vega get liquidated after a price move that is smaller than what they come to expect from trading on CEXs with the same initial leverage”). Given that Vega is general purpose market infrastructure and that this issue is explicitly affecting what sound like retail traders using a front end, it would seem more appropriate to solve the problem in front ends rather than imposing their preferred risk management strategy on all users across the entire system.

In fact, setting the initial margin at 1.5 was a conservative choice for the defaults programmed into the initial alpha release. Over time I would in fact imagine the community choosing to reduce this to say 1.1 (or even lower) to improve capital efficiency especially under cross margining.

Alternative front-end solution

This is what I’d suggest to do instead. It could be raised in the Console/front-end Github repo and should not be a difficult feature to implement.

While it’d be possible (simple, even) to have Console refuse to submit an order when the trader’s balance is less than 2x the maintenance margin, it might be better to allow such actions, but with a warning or hidden behind a setting.

Such a warning could require explicit consent (“Warning: you only have 1.6x the required maintenance margin for this position, check the box below to enable creating this order.”) or creating such positions could be disallowed entirely unless a trader goes into the settings.

Note also that once isolated margin is available, in that mode the initial margin is replaced by the isolated margin in that mode, and so a similar warning could be displayed when selecting the margin ratio/leverage.

Why not just increase the leverage?

One suggestion is for the community to increase the leverage by fiddling with risk parameters so that the leverage currently available at the 1.5 ratio initial margin could be made available once the ratio changes to 2.0.

This is not a great idea, because the actual leverage available to positions from a system and counterparty risk point of view is the leverage implied by the maintenance margin, not the initial margin. The maintenance margin is what is left to close out a liquidated position and so it’s the level that matters when it comes to keeping the system safe under liquidations.

In order to keep the system operating safely, markets should be created with risk parameters that are reasonable given the market-to-market frequency and the volatility of the market. If maintenance margin leverage is too high then loss-socialisation will occur more regularly and the insurance pool will not be maintained and grown over time.

When the maintenance margin is set reasonably, it’s also reasonable that some of the users types mentioned above may what to access the full leverage allowed by the margin level.

Happy to be corrected if I’ve fundamentally misunderstood or missed anything around the justification or purpose for this.

I personally would hope to see energy focused on an alternative solution and improving the UX for the affected subset of users, something which does not require a protocol change nor any adjustment to parameters, rather than this. I think this could be damaging in ways that would be hard to detect. If people just don’t use the system because of the implications to capital efficiency or their trading strategy of high initial margin, they may not tell anyone.

Let me know what you think…

Hi Barney,

I agree that a better way to address this issue would be through UI changes. I think it is sensible to restrict the leverage that retail can use relative to the max leverage as defined by the maintenance margin level. I proposed this sort of change during the mainnet sims but I don’t think I made a post on github about it so that’s my bad.

I also agree that it might make sense to have a higher initial margin on a high leverage market than on a low leverage market, however this strikes me as more of an argument for market level margin scaling factors and not network-wide parameters. It is not clear to me whether the margin scaling factors are configurable on a per market basis at the moment, hence why I proposed a change to the net param.

With respect to increasing the leverage available on markets, before selecting the parameters that I did in my other post (VMP-23) I went through discussions with some of the Vega team members and other community members. We made sure to consider the maximum leverage when formulating these parameters, ie; the leverage that is defined by the maintenance margin, not the initial leverage that is defined by the initial margin. These parameters were agreeable to all parties so I feel that we did appropriately consider the volatility of the markets and the time horizons used.

Overall I am impartial to changes to the margin scaling factors at this moment in time. I initially wrote this proposal after discussion with certain community members who had expressed concern around the initial margin scaling factor. It would be good to see some movement from the Vega team on aligning the front end UX for high leverage trading with that of other venues. I do worry that warnings will not be adequate as a large number of users will likely not even read them and even if they do they might not understand the implications. It might be more sensible to restrict the initial leverage available to retail traders who interact with Vega through console, as ultimately the margining system and risk model params are too complex for your average trader to understand. Maybe then if they can prove their proficiency and understanding by answering a questionnaire then they could be granted access to the default initial margin scaling.

Cheers

Ed

So I guess in summary:

  • We spec the Console change to add a warning or some kind of restriction to the UI to prevent users from taking on huge positions that have risk of immediate close-out
  • We then increase the max leverage to be consistent with leverage offered by other trading venues (for BTC max is typically 200x for example, with initial being 100x)
  • We can then leave the initial margin scaling parameter at 1.5, or reduce it over time to be closer to 1 (maybe smallest being 1.1?)

This may/may not deliver a different user experience, depending on how we spec the Console changes. We could feasibly implement the initial margin restriction in Console and make it impossible for users to take more than 50% of the max leverage if that’s the UX we desire. We’ll have to think about lower leverage markets as noted above if we decide to do that (is there a one-size-fits-all rule that we can implement).