TLDR
We explore multiple methods for forecasting multivariate volatility which is then used to determine risk indifference price for perp positions. While DCCGARCH performs well in shortterm forecast, GOGARCH with reduced number of principal factors outperforms other models in predicting long term as it is more robust against noise. We then use the forecasted volatility to determine risk indifference price which captures the risk arising from longshort imbalance across multiple markets.
For detailed description of forecast models as well as some derivations, please refer to the full writeup here.
Motivation
In our previous writeup Bandit Funding Rates, we explored a new mechanism design for setting funding rates on perp exchanges. However, we observed that funding rates would spike up unexpectedly during some simulation runs, which would not be ideal for traders. This in part can be due to the fact that the bandit framework tried to manage the default risk for the exchange solely by switching funding rates and did not consider charging spread (or equivalently, charging mark price different from the index).
In order to determine a fair price for each contract, we explore risk indifference pricing where the risk is defined as the possible loss the exchange is exposed to when traders are net profitable. We use entropic valueatrisk (EVaR) to quantify such risk given the state of the exchange (long and short open interests). Since net trader PnL is a function of the prices of the underlying assets, calculating entropic valueatrisk requires some estimate of the distribution of future returns on these assets. Below we explore multiple models for forecasting multivariate volatility and discuss how the forecasted covariance matrices can be used for indifference pricing.
Multivariate Volatility Forecasting Models
We aim to forecast the volatility of n \geq 50 crypto assets. Approaches such as stochastic volatility models or copulas seem too complex for such high dimensions. Alternatively, neural network based methods could be too “black box” for a decentralized protocol to use. Instead, we chose to focus on multivariate GARCH (mGARCH) models and make the following simplifying assumptions: the log returns of all price processes follow a multivariate normal distribution and have zero mean.
We compare two popular classes of mGARCH models as well as another class based on hierarchical clustering that we conjecture is a reasonable parametric design for modelling a large number of diverse crypto assets. Our benchmark model will be the univariate GARCH(1,1) model fit independently to each asset, hence assuming zero correlation between assets.

FactorARCH models assume that there exist unobservable factors that are conditionally heteroskedastic and generate the log returns for a set of assets. In particular, we use Generalized Orthogonal GARCH (GOGARCH), which considers diagonalization of covariance matrix where the diagonal matrix represents covariance of the factors.

Conditional correlation models estimate conditional variance and correlation separately. We use Dynamic Conditional CorrelationGARCH (DCCGARCH), which models timevarying conditional correlation.

HierarchicalGARCH (HGARCH) is a class of mGARCH models that begins by forming hierarchical clusters of assets based on given set of timeseries data. The full covariance matrix is then reconstructed by estimating separately the covariance within each cluster using GOGARCH and between clusters using DCCGARCH. HGARCH could provide a good parametric method for modeling crypto classes that may differ liquidity and observation frequency. This method requires additional step to ensure the forecasted matrix is positive semidefinite (valid covariance matrix).
Method
We fitted all models using Binance US 5minute frequency times series data over 3 days (864 observations) of the top 50 crypto assets in market capitalization. To robustly test for forecast accuracy, we chose 3 periods of price paths that correspond to prior, during, and post USDC depeg situation in early March 2023.
We compare the performance of each model using Model Confidence Set (MCS) method, which determines a Superior Set of Models (SSM) that predict the covariance equally well under a specified loss function. The loss function we use is a continuous ranked probability score called the sample energy score (ES). We perform MCS on ES loss for each model with 100 rolling outputs of 5minute and 1hour ahead covariance forecasts.
All GARCH models (and DCC) are of order (1,1). We implement two models for GOGARCH, one with 50 factors and the other with m < 50 principal factors, where m with determined using MarchenkoPastur (MP) law in Random Matrix Theory, denoted GOGARCHMP. For HGARCH, we use MP by default to limit the number of factors within each cluster.
Our implementation in R is available here.
Results
Univariate GARCH and DCCGARCH performed best in the 5min ahead forecast while GOGARCHMP performed the worst. However, GOGARCHMP and HGARCH consistently outperformed all other models for the 1hour ahead forecast. This suggests that using MP could effectively denoise the input data and indicates that Univariate GARCH and DCCGARCH could be overfitting.
We also observed that DCCGARCH takes significantly longer time to run, while GOGARCHMP is the fastest, due to the respective number of parameters needed. In practice, since we expect to forecast on the order of hoursahead and we want to optimize for speed, GOGARCHMP seems to be the best fit as of now.
Model  Mean ES (Period 1)  Mean ES (Period 2)  Mean ES (Period 3) 

Univariate GARCH  0.008475  0.02025  0.014898 
DCCGARCH  0.008476  0.020077  0.01476 
GOGARCH  0.008609  0.020209  0.015005 
GOGARCHMP  0.00987  0.025829  0.019445 
HGARCH  0.010548  0.027316  0.021135 
Table 1: 5 min ahead forecast
Model  Mean ES (Period 1)  Mean ES (Period 2)  Mean ES (Period 3) 

Univariate GARCH  0.016005  0.03277  0.028248 
DCCGARCH  0.015811  0.032043  0.027385 
GOGARCH  0.016873  0.034644  0.029975 
GOGARCHMP  0.00987  0.025829  0.019445 
HGARCH  0.010548  0.027316  0.021135 
Table 2: 1 hour ahead forecast
Note that bold numbers indicate the inclusion of the model in the Superior Set of Models.
Extension to Risk Indifference Pricing
As mentioned in Motivation, our goal is to derive a risk indifferent price under multiasset trading. With a few additional assumptions on the underlying process, we obtain the following closedform solution for pricing any combination of assets:
where a trade changes net trader positions from \mathbf{q} to \mathbf{q'}, X_{t+1}(\mathbf{q}) represents the portfolio value of \mathbf{q}, and C is any capital including trader collateral and additional liquidity available. Here, we use forecasted covariance matrix \mathbf{V}_{t+1} by transforming it into the covariance matrix of asset prices \mathbf{V}_{t+1}^p and defining entropic valueatrisk as:
Figure 1 is an example of mark price for ETHPERP (calculated as index + (calculated premium / order size)) when BTCPERP market has net 2 long OI. We can see that under Univariate GARCH, the correlation between ETH price and BTC price are completely ignored (long and short premium are priced symmetrically), where as the other models consider the positive correlation. This is reflected in higher premia for long positions and rebate for short positions up to 50  75 ETH. Interestingly, pricing under GOGARCH and HGARCH seem to converge faster to lower price for long positions, whereas pricing under DCCGARCH seem to converge slower to higher price. Figure 2 was produced by randomly generating OI for each of the 50 markets with higher probability of being shortheavy.
Fig 1. ETHPERP price when BTCPERP market is long heavy
Fig 2. ETHPERP price when most markets are short heavy
Future Work
Future directions include choosing other methods of hierarchical clustering, a closer analysis of MP law in practice, and applying Kalman Filters to denoise the sample covariance matrix.Questions
 What other methods of hierarchical clustering should we try and how should we choose the number of clusters?
 What other multivariate volatility forecast models should we explore?