7

A lot has happened since Markowitz and Sharpe. While their work is still considered foundational, the empirical/practical relevance of their models has been questioned by later work. Here are a few more recent articles about portfolio theory, in no particular order (all accessible online): Jorion: Bayes-Stein Estimation for Portfolio Analysis, JFQA, 1986 ...


6

As i understand your question you are confused as to why the expected parabola-shape of the frontier is not depicted clearly. If you want to see the shape more clearly you can do one of two things: Increase the number of random portfolios. As this numbers goes to infinity you will eventually plot all possible portfolio combinations, and your efficient ...


5

CAPM states that the expected return of any given asset should equal $ER_i=R_f+β_i (R_m-R_f)$, with α being the error term of the previous equation. Now, as α has an expected value of zero, then only way to achieve higher expected returns is taking on more β (given that $E[(R_m-R_f )]>0$). Every individual stock has some idiosyncratic risk in addition to ...


5

These are just single stock holdings in the US, excluding index derivatives positions/foreign positions. They are a allegdly a "macro fund" so I wouldn't expect them to do too much stock picking either. Actually most of their 13F positions are index ETF.


4

It kind of depends what your objective is. First, momentum 'bias' isn't well-defined. Are you looking to eliminate momentum exposure for some reason? Momentum itself isn't even well-defined really: momentum over the trailing 1 year? Trailing 6m? Looking over 3-5y periods where mean-reversion is more at play? Generally, in the absence of a clearer ...


4

The Minimum Variance Portfolio (without constraints, other than the weights sum to one) is usually found as $$w=\frac{\Sigma^{-1} \iota}{\iota^T\Sigma^{-1} \iota}$$ where $\Sigma$ is the Covariance matrix and $\iota$ is a vector of all ones. However, there is another (equivalent) way to find it. Memmel and Kempf (2006) SSRN 940367 showed that you can find ...


3

If you take $A^T∗COV∗B$ then the result will be 1 x1 ( a scalar). (1xN * NxN * Nx1 = 1x1). I believe you forgot to take the transpose of A. The vector which pre-multiplies COV needs to be a row vector, because in your example it isn't you may be getting this weird result.


3

You cannot eliminate the dependence of a solution on the risk aversion parameter (which this author confusingly calls $\lambda$). Perhaps a source of confusion? Typically $\lambda$ is used to denote a Lagrange multiplier in Lagrangian optimization, but the author is using $\lambda$ as a risk tolerance parameter. (In your other linked question, $\lambda$ ...


3

I feel in need for adding a differnt answer than the previous one. Cochrane states in the preface of his book Asset Pricing: In absolute pricing, we price each asset by reference to its exposure to fundamental sources of macroeconomic risk. [...]. The absolute approach is most common in academic settings, in which we use asset pricing theory positively ...


3

When you solve for a minimum variance portfolio you acquire some values, $\mathbf{\beta}$ corresponding to the weights of your assets, usually such that $\sum \mathbf{\beta} = 1$. Regularization means you try to limit these values such that your objective function also includes the norm of $\mathbf{\beta}$ (Ridge regression - L2-norm) or the sum of absolute ...


3

There are a lot of interesting articles... From a practitioner's point of view: Meb Faber's Global Tactical Asset Allocation Butler, Philbrick and Gordillo's Adaptive Asset Allocation Anything from Asness like: Fact, Fiction and Momentum Investing Value and Momentum Everywhere Or CTA/momentum related stuff: Time Series Momentum Momentum Strategies in ...


3

Have you checked the performance of the particular stocks? library("quantmod") library("PMwR") cmp <- "AAPL" aapl <- getSymbols(Symbols = cmp, auto.assign = FALSE)$AAPL.Adjusted cmp <- "FB" fb <- getSymbols(Symbols = cmp, auto.assign = FALSE)$FB.Adjusted returns(window(merge(aapl, fb), start = as.Date("2015-1-1")), period = "itd") ## ...


3

Yes, it is easy to find the MDP of N risky assets if you have the covariance matrix V (assumed non-singular) if there are no constraints: Step 1. Compute the inverse of the covariance matrix: $CINV = V^{-1}$ Step 2. Find the standard deviations $\sigma$ by taking the square roots of the diagonal elemnts of $V$ Step 3. Find $X = CINV \times\sigma$ i.e. ...


3

It would have been helpful had you provided links to those papers. But in general, you need to distinguish between the optimisation model, and the numerical technique used to solve the model. Suppose you wanted to estimate a linear regression, with the mean squared residual as the criterion of fit, and without further constraints. This is a model. Now you ...


2

When a limited partnership in PE (private equity) is established, each limited partner commits some amount, say x, and that caps their liability (Commitment). As the PE firm usually will make investment over time or in the future, it would not make much sense for the LPs to hand over the money to the PE firm when the partnership is formed. Instead the PE ...


2

The constitution of each industry portfolio is described in each "detail"-section on Kenneth French´s homepage. The industries are defined by sorting each NYSE, AMEX, and NASDAQ stock based on its four digit SIC-code. The sort is applied at the end of June of year $t$. Monthly returns are calculated for the subsequent year, i.e. from July of year $t$ to end ...


2

There's a field of study called Statistics, which to a large extent tries to answer questions like that both in a financial setting and in experimental sciences. Try to read something about it. To your question, yes, people use the historical data this way, but usually, they perform a more rigorous statistical analysis, than just counting the number of times ...


2

If your model is only relating to historical price data of that single stock, then the model wouldn’t be useful. Historical price data is stochastic, and a lot of theory in financial mathematics is based on this idea, meaning the expected value of a stock at any point in the future has no memory of (and is completely independent of) past prices.


2

Yes, two different set of returns can lead to the same weights (so you won't be able to prove the opposite). Also, the term "unique solution" means something different than how you used it. Taking $p$ and $Q$ as given, the mapping from $\boldsymbol{\mu}$ to solutions $\mathbf{x}^*$ is not injective I'll give a simple counterexample that shows the mapping ...


2

Let $S$ be your risk sarray, expressed in pv01, for each of your (implied) 10 instruments. You restrict the array to all zeroes except those corresponding to the 5Y, 7Y and 10Y risks, e.g. if 1Y:10Y were your instruments you would have: $$S = [0, 0, 0, 0, w_1, 0, -1, 0, 0, w_2]^T $$ You seek the solution of $w_1$, $w_2$ such that your risk expressed in PCs ...


2

Multiply the weight of the assets times the 1 + returns of the corresponding asset. This will give you the value of each asset at the end of your horizon. In your example: (0.2)(1+0.05) = 0.21; (0.3)(1+-0.05) = 0.285; (0.5)(1+0.10) = 0.55; Now add all of these values to get Total Assets: (0.2)(1.05) + (0.3)(0.95) + (0.5)(1.10) = 1.045 Finally ...


2

The tangent portfolio is the optimal portfolio of risk assets. So under the Modern portfolio theory world, all investors will buy and hold this portfolio if they want to make an investment in risky assets. The point where indifference curve and the CAL meets tells how much of your wealth would be invested in (1) the risk-free asset and (2) the optimal ...


2

Whilst this doesn't answer your question you may be interested to know that you can vectorise your simulation and greatly improve the efficiency of your code like this: def portfolio_annualised_performance(weights, mean_returns, cov_matrix): """ Return annualised risk and return for a portfolio given asset weights and expected return and covriance ...


2

Regularisation means that you impose structure on your problem; structure that could not be recognised from the data sample alone. In the context of mean-variance optimisation, regularisation is mostly discussed when people estimate quantities from historical data (e.g. variances) and plug them into their objective function. (However, the term "...


2

In your other post's Python code, you already have the sample covariance matrix as: cov_matrix = returns.cov() To also get the covariance used by ridge regression, put on the next line: cov_ridge = cov_matrix + lamda*np.eye(N) The second term increases the values along the diagonal of cov_matrix, using a $\lambda$ (lamda) regularization factor for ...


2

The correlation certainly has an impact on the price of your portfolio (of two options). If you simulate the prices at time $t < T$ then you get samples prices $X_t$ and $Y_t$ and the return between time $0$ and time $t$ reflects the correlations. This means that if $\rho$ is positive then the $X_t-X_0$ and $Y_t-Y_0$ are likely to have the same sign. ...


2

You can check my answer to this question for general details on how to solve this kind of problem. Let $C_X(S_T)$ and $P_Y(S_T)$ be a call and a put option with strikes $X$ and $Y$ respectively, then: $$\begin{align} (\text{i}) \quad V_T &= (S_T-A)1_{\{A\leq S_T\leq B\}}+(B-A)1_{\{S_T>B\}} \\ &=(S_T-A)1_{\{S_T\geq A\}}+(B-S_T)1_{\{S_T\geq B\}} \\...


2

Assuming we are talking about Pearson correlation, then we may apply the triangle inequality. Let $\rho(X,Y)$ denote the correlation between $X$ and $Y$. Then, $(1-\rho(X,Z))^{1/2}\le (1-\rho(X,Y))^{1/2} + (1-\rho(Y,Z))^{1/2}$


1

You need to factor borrowing costs into the scenarios (and the currently low interest rates help, so you may want to check with higher rates as well). Since you compute VaR from the scenarios, this will push VaR to the left (in terms of returns, i.e. make it worse). The key question is if your risk budget can withstand such an increase in VaR, which will ...


1

It is described in the PMwR manual. An example: I make up a trivial price series. library("PMwR") prices <- 1:5 The signal function instructs the algorithm to buy a random quantity at each timestamp. And signal also prints the current values of total wealth, cash and the position. signal <- function() { cat("Time", Time(), "\n") cat("Total ...


Only top voted, non community-wiki answers of a minimum length are eligible