msharpeScreening: Screening using the modified Sharpe outperformance ratio

Description Usage Arguments Details Value Note Author(s) References See Also Examples

View source: R/msharpeScreening.R


Function which performs the screening of a universe of returns, and computes the modified Sharpe outperformance ratio.


msharpeScreening(X, level = 0.9, na.neg = TRUE, control = list())



Matrix (TxN) of T returns for the N funds. NA values are allowed.


Modified Value-at-Risk level. Default: level = 0.90.


A logical value indicating whether NA values should be returned if a negative modified Value-at-Risk is obtained. Default na.neg = TRUE.


Control parameters (see *Details*).


The modified Sharpe ratio (Favre and Galeano 2002, Gregoriou and Gueyie 2003) is one industry standard for measuring the absolute risk adjusted performance of hedge funds. We propose to complement the modified Sharpe ratio with the fund's outperformance ratio, defined as the percentage number of funds that have a significantly lower modified Sharpe ratio. In a pairwise testing framework, a fund can have a significantly higher modified Sharpe ratio because of luck. We correct for this by applying the false discovery rate approach by Storey (2002).

For the testing, only the intersection of non-NA observations for the two funds are used.

The argument control is a list that can supply any of the following components:


A list with the following components:

n: Vector (of length N) of number of non-NA observations.

npeer: Vector (of length N) of number of available peers.

msharpe: Vector (of length N) of unconditional modified Sharpe ratios.

dmsharpe: Matrix (of size NxN) of modified Sharpe ratios differences.

tstat: Matrix (of size NxN) of t-statistics.

pval: Matrix (of size NxN) of p-values of test for modified Sharpe ratios differences.

lambda: Vector (of length N) of lambda values.

pizero: Vector (of length N) of probability of equal performance.

pipos: Vector (of length N) of probability of outperformance performance.

pineg: Vector (of length N) of probability of underperformance performance.


Further details on the methdology with an application to the hedge fund industry is given in in Ardia and Boudt (2018).

Some internal functions where adapted from Wolf's R code.

Application of the false discovery rate approach applied to the mutual fund industry has been presented in Barraz, Scaillet and Wermers (2010).


David Ardia and Kris Boudt.


Ardia, D., Boudt, K. (2015). Testing equality of modified Sharpe ratios. Finance Research Letters 13, pp.97–104. doi: 10.1016/

Ardia, D., Boudt, K. (2018). The Peer Ratios Performance of Hedge Funds. Journal of Banking and Finance 87, pp.351-.368. doi: 10.1016/j.jbankfin.2017.10.014

Barras, L., Scaillet, O., Wermers, R. (2010). False discoveries in mutual fund performance: Measuring luck in estimated alphas. Journal of Finance 65(1), pp.179–216. doi: 10.1111/j.1540-6261.2009.01527.x

Favre, L., Galeano, J.A. (2002). Mean-modified Value-at-Risk Optimization with Hedge Funds. Journal of Alternative Investments 5(2), pp.21–25. doi: 10.3905/jai.2002.319052

Gregoriou, G. N., Gueyie, J.-P. (2003). Risk-adjusted performance of funds of hedge funds using a modified Sharpe ratio. Journal of Wealth Management 6(3), pp.77–83.

Ledoit, O., Wolf, M. (2008). Robust performance hypothesis testing with the Sharpe ratio. Journal of Empirical Finance 15(5), pp.850–859. doi: 10.1016/j.jempfin.2008.03.002

Storey, J. (2002). A direct approach to false discovery rates. Journal of the Royal Statistical Society B 64(3), pp.479–498. doi: 10.1111/1467-9868.00346

See Also

msharpe, msharpeTesting, sharpeScreening and alphaScreening.


## Load the data (randomized data of monthly hedge fund returns)
rets = hfdata[,1:10]

## Modified Sharpe screening 
msharpeScreening(rets, control = list(nCore = 1))

## Modified Sharpe screening with bootstrap and HAC standard deviation
msharpeScreening(rets, control = list(nCore = 1, type = 2, hac = TRUE))

ArdiaD/PeerPerformance documentation built on Aug. 30, 2018, 11:12 p.m.