Hot answers tagged optimization
16
The minimum variance solution loads up on securities that have low variances and co-variances. Theoretically you are correct that this should have a low expected return profile.
However, it turns out - in contradiction to modern portfolio theory - that securities that have low-volatility or low-beta experience higher returns than high-volatility or ...
15
This is just to expand a bit on vonjd's answer.
The approximate formula mentioned by vonjd is due to Brenner and Subrahmanyam ("A simple solution to compute the Implied Standard Deviation", Financial Analysts Journal (1988), pp. 80-83). I do not have a free link to the paper so let me just give a quick and dirty derivation here.
For the at-the-money ...
12
Sorry for not being able to give more than one hyperlink, please do some web search for the project pages.
Portfolio optimization could be done in python using the cvxopt package
which covers convex optimization. This includes quadratic programming as a special case for the risk-return optimization. In this sense, the following example could be of some ...
11
This one is the best approximation I have ever seen:
If you hate computers and computer
languages don't give up it's still
hope! What about taking Black-Scholes
in your head instead? If the option is
about at-the-money-forward and it is a
short time to maturity then you can
use the following approximation:
call = put = StockPrice * 0.4 *
...
9
I haven't had the time to try them personally, but if I were you I'd try The Solver Foundation or maybe you can find something useful within these libraries.
What I did was to compile a MATLAB algorithm and used the produced DLL.
UPDATE: I read yesterday in the Wilmott Magazine that the NAG Library is also available for .Net now. Again, I haven't used it ...
8
The following papers may help.
A New Look at Minimum Variance Investing by Bernd Scherer
Minimum Variance Portfolio Composition by Clarke, De Silva & Thorley
Under a multifactor risk-based model, if the global minimum variance portfolio dominates the market portfolio, the implication is that the market portfolio is not multifactor efficient and that ...
8
Minimum variance can be solved simply and efficiently via a quadratic optimizer as the only key input is a covariance matrix.
Drawdown or Sortino cannot be optimized via a covariance matrix unless you assume some functional relationship between co-variances/variances and your risk metric of interest. Likely you'll wind up with a similar portfolio to the ...
7
In addition to what vonjd already posted I would recommend you to look at the E.G. Haug's article - The Options Genius. Wilmott.com. You can find some aproximations of BS not only for vanilla european call and put but even for some exotics. For example:
chooser option: call = put = $0.4F_{0} e^{-\mu T}\sigma(\sqrt{T}-\sqrt{t})$
asian option: call = put = ...
7
You can use https://projects.coin-or.org/Clp
Other options:
http://sourceforge.net/projects/lpsolve/
and in R
http://cran.r-project.org/web/packages/lpSolve/index.html
They all solve pure linear, integer and mixed problems
7
Hey, it's early days yet. After all it is still called MODERN portfolio theory.
I think there are two main issues and they are both really cultural:
1) specifying alphas
2) wild results
Alphas
I agree with Gappy that alphas are the key thing you need to have effectiveness (unless you are doing minimum variance). Having a vector of expected returns is ...
7
The Black-Scholes 'normal-vol' formula leads quickly to a similar approximation to the one described by olaker.
Click here for a paper which contains a formal derivation of the call and put prices based on a normal model (ie a brownian motion rather than a geometric brownian motion).
The formula for the call price is:
$$\text{Call} = (F-K)N(d_1) + ...
6
The PortfolioAnalytics package will create weights without reference to current weights, if that's what you want. It should also have much of the reporting that you like from Rmetrics fPortfolio.
There is a longer seminar presentation on Portfolioanalytics from 2010's R/Finance conference here: Complex Portfolio Optimization with Generalized Business ...
6
This is the website to the R/Finance conference this year. Tons of great links.
http://www.rinfinance.com/agenda/
Brian Peterson's slide (Building and Testing Quantitative Strategy Models in R) mentions Portfolio-Analytics (which I think is based on R/Metrics).
And here is a paper based on Portfolio-Analytics.
...
6
Unlike the tangency portfolio on the efficient frontier (which represents the most efficient portfolio in terms of max expected sharp ratio), min var portfolios have no ex ante theory that suggests it should outperform a cap weighted market portfolio. The same can be said about other risk-weighted portfolio construction schemes, including equal risk ...
6
Using solve.QP in R, a straightforward approach is to add a binary exposure vector as an inequality constraint to your Amat matrix for each group that you want to constrain.
The only catch is that values in the exposure and b_0 vectors should be negative, since the function is really satisfying the constraints: A^T b >= b_0.
For a simple mean-variance ...
6
I believe there are several ways you can tackle your problems.
First, you mentioned that your perform several optimizations. One solution that comes to mind instead of speeding up the optimization itself is to perform the optimizations in parallel, so you could look at Mathwork's Parallel Computing Toolbox.
Second, providing the optimizer with a good ...
5
I know you're really looking for some empirical work on this topic, but I think the following theoretical paper puts your question into proper perspective.*
Risk-Based Asset Allocation: A New Answer to an Old Question by Wai Lee, JPM 2011.
Overall, he finds that supposedly risk-based approaches to portfolio construction are really making implicit ...
5
I don't know if you can really improve, the point of Market Making is that you don't know when you'll be executed.
It also depends a lot on the type of product you're trading, it's not the same business Market Making far from the money options (where you will never be executed but just offer a reference price and answer traders phone calls) and MM on ...
5
Tools from the field of stochastic optimization are best suited for these problems. In particular, attached is a paper on non-parametric density estimation for stochastic optimization that describes an algorithm if state variables can be associated with draws from the predictive distribution.
Here's another approach by Kuhn. These are all one-period ...
5
There are many portfolio optimization paradigms that include a preference for skewness. These are generally alternatives meant to replace the modern portfolio management mean-variance framework developed by Markowitz. Skewness (or, more generally, higher moments) are only relevant in portfolio optimization if (a) assets are not normally distributed, and ...
5
You can also have a look at ALGLIB or DotNumerics.
It would help though if you clarified what kind of optimization problem you have or what kind of algorithm you look for. And if by free you mean GPL or something more like MIT?
5
The blog post http://www.portfolioprobe.com/2011/10/03/predictability-of-kurtosis-and-skewness-in-sp-constituents/ suggests that there is some predictability in kurtosis, but it isn't clear (to me at least) that there is enough predictabiilty to be useful.
If there is a place for higher moments, my guess is that it is in asset allocation problems where ...
5
The minimum variance optimization framework does not guarantee positive return whatsoever.
As a matter of fact what you are trying to do is something close to the following:
$$\underset{w}{\arg \min} \quad w' Q w \quad \text{s.t} \quad Aw \leq b,\quad \sum_i w_i=1$$
The fact that you get positive return is a nice result that you get from your backtest ...
5
If you don’t have any specific model which describes the behavior of the asset being traded, you can estimate the empirical distribution of returns by backtesting your momentum strategy. Then you can adjust this estimate during your strategy’s lifetime from your trading results. Additionally you can enhance this by accounting for different market regimes ...
5
Meucci covers this example precisely in his paper "Fully Flexible Views: Theory & Practice". You can find his code here for three examples related to the paper. The Butterfly Trading example covers the CVAR scenario.
5
I can think of three reasons.
First, and simplest, is that people care about variance.
Second, if you really do care about draw-downs, if returns are close to normally distributed, the distribution of draw-downs is just a function of the variance, so there's no need to include draw-downs explicitly in your portfolio construction objective. Minimizing ...
5
In my experience, a VaR or CVaR portfolio optimization problem is usually best specified as minimizing the VaR or CVaR and then using a constraint for the expected return. As noted by Alexey, it is much better to use CVaR than VaR. The main benefit of a CVaR optimization is that it can be implemented as a linear programming problem. Another option I have ...
5
Bernd Scherer has done exactly this test in his text "Portfolio Construction and Risk Budgeting 4th Edition". There is an SSRN paper by Scherer called "Resampled Efficiency and Portfolio Choice (2004)" you can take a look at as well.
I would suggest you skip re-sampling (especially if you have a long-only portfolio) and take a look at Meucci's Robot ...
4
the question is very broad, Here is the brief summary of the role of all moments in portfolio optimization:
expected value- the 1st moment represents the reward. All the even higher moments
represent the likelihood of extreme values. Larger values for these moments indicate
greater uncertainty. The odd moments represent measures of asymmetry. Skewness ...
4
This seems like it would be well-suited for implementation in a Prolog. That family of languages is built around a constraint programming model. Specifically, take a look at ECLiPSe. It's mature (originally developed in the 90's by Cisco I believe) and has external hooks to e.g. Java & C++ if you don't want to implement your whole system in prolog.
...
Only top voted, non community-wiki answers of a minimum length are eligible