Description Usage Arguments Details Value Note Author(s) References See Also Examples
View source: R/sharpeScreening.R
Function which performs the screening of a universe of returns, and computes the Sharpe outperformance ratio.
1  sharpeScreening(X, control = list())

X 
Matrix (TxN) of T returns for the N
funds. 
control 
Control parameters (see *Details*). 
The Sharpe ratio (Sharpe 1992) is one industry standard for measuring the absolute risk adjusted performance of hedge funds. We propose to complement the Sharpe ratio with the fund's outperformance ratio, defined as the percentage number of funds that have a significantly lower Sharpe ratio. In a pairwise testing framework, a fund can have a significantly higher 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 nonNA
observations for the
two funds are used.
The methodology proceeds as follows:
(1) compute all
pairwise tests of Sharpe differences using the bootstrap approach of Ledoit
and Wolf (2002). This means that for a universe of N funds, we perform
N*(N1)/2 tests. The algorithm has been parallelized and the
computational burden can be splitted across several cores. The number of cores
can be defined in control
, see below.
(2) for each fund, the false discovery rate approach by Storey (2002) is used to determine the proportions over, equal, and underperfoming funds, in terms of Sharpe ratio, in the database.
The argument control
is a list that can supply any of the following
components:
'type'
Asymptotic approach (type = 1
) or
studentized circular bootstrap approach (type = 2
). Default:
type = 1
.
'ttype'
Test based on ratio (type = 1
)
or product (type = 2
). Default: type = 2
.
'hac'
Heteroscedasticautocorrelation consistent standard
errors. Default: hac = FALSE
.
'nBoot'
Number of boostrap replications for computing the pvalue. Default: nBoot =
499
.
'bBoot'
Block length in the circular bootstrap. Default:
bBoot = 1
, i.e. iid bootstrap. bBoot = 0
uses optimal
blocklength.
'pBoot'
Symmetric pvalue (pBoot = 1
) or
asymmetric pvalue (pBoot = 2
). Default: pBoot = 1
.
'nCore'
Number of cores to be used. Default: nCore = 1
.
'minObs'
Minimum number of concordant observations to compute
the ratios. Default: minObs = 10
.
'minObsPi'
Minimum
number of observations to compute pi0. Default: minObsPi = 1
.
'lambda'
Threshold value to compute pi0. Default: lambda
= NULL
, i.e. data driven choice.
A list with the following components:
n
: Vector (of length N) of number of nonNA
observations.
npeer
: Vector (of length N) of number of available peers.
sharpe
: Vector (of length N) of unconditional Sharpe ratios.
dsharpe
: Matrix (of size NxN) of Sharpe ratios
differences.
tstat
: Matrix (of size NxN) of tstatistics.
pval
: Matrix (of size NxN) of pvalues of test for 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 Michael Wolf MATLAB 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/j.frl.2015.02.008
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.15406261.2009.01527.x
Sharpe, W.F. (1994). The Sharpe ratio. Journal of Portfolio Management 21(1), pp.49–58. doi: 10.3905/jpm.1994.409501
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/14679868.00346
sharpe
, sharpeTesting
,
msharpeScreening
and alphaScreening
.
1 2 3 4 5 6 7 8 9  ## Load the data (randomized data of monthly hedge fund returns)
data("hfdata")
rets = hfdata[,1:10]
## Sharpe screening
sharpeScreening(rets, control = list(nCore = 1))
## Sharpe screening with bootstrap and HAC standard deviation
sharpeScreening(rets, control = list(nCore = 1, type = 2, hac = TRUE))

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.