FernholzDecomp
computes the Fernholz decomposition of a functionally generated portfolio.FernholzDecomp(market, portfolio, plot = TRUE)
fgp
) and Fernholz's decomposition play an important role in stochastic portfolio theory.
In this context, the benchmark portfolio is a buy-and-hold market portfolio (modeled as a toymkt
object in this package). The portfolio weights of the benchmark is represented by the market weight $\mu(t)$. The portfolio manager chooses portfolio weights $\pi(t)$.
Let $V(t)$ be the growth of $1 of the manager's portfolio divided by that of the benchmark. Initially $V = 1$ and it increases when the manager outperforms the market. The quantity $log(V(t))$ is called the relative log return.
For a functionally generated portfolio, the portfolio weights $\pi(t)$ are deterministic functions of the current market weight $\mu(t)$. More precisely, the portfolio weights $\pi(t)$ are given by the derivatives of $log(\Phi)$ at $\mu(t)$, where $\Phi$ is called the generating function. See the references for more details (the notation here follows that of Pal and Wong (2014)).
In this case, Fernholz's decomposition states that the relative log return has the decomposition
$$log(V(t)) = [log(\Phi(\mu(t))) - log(\Phi(\mu(0)))] + \Theta(t),$$
where $\Theta(t)$ is called the drift process. Note that the first term depends only on the current and initial positions of the market weights. The drift process is determined by the portfolio and the cumulative amount of market volatility. This is the decomposition implemented by the function FernholzDecomp
. See also Chapter 6 of Fernholz (2002).fgp
# Plot the Fernholz decomposition for the entropy-weighted portfolio
data(applestarbucks)
market <- toymkt(applestarbucks)
output <- FernholzDecomp(market, EntropyPortfolio, plot = TRUE)
Run the code above in your browser using DataLab