Josh, If I may comment: The joint probabilities ta… Ralph Vince - May 3, 2010Josh, If I may comment: The joint probabilities table (“jpt”) ultimately should encompass and be a proxy for all potential risk for the next period. In other words, frequently, in attempting to articulate “risk,” we see the argument that it is more than mere variance. That there is liquidity risk, there is counter-party risk, this risk and that risk, and there is a notion that risk posses many facets.
I’ve received several requests for methods to create joint probability tables for use in LSPM’s portfolio optimization functions. Rather than continue to email this example to individuals who ask, I post it here in hopes they find it via a Google search. ;-) I’m certain there are more robust ways to estimate this table, but the code below is a start… ‘x’ is a matrix of market system returns ‘n’ is the number of bins to create for each system
I just got back from R/Finance 2010 in Chicago. If you couldn’t make it this year, I strongly encourage you to attend next year. I will post a more comprehensive review of the event in the next couple days, but I wanted to share some of my notes specific to LSPM. How sensitive are optimal-f values to the method used to construct the joint probability table? Is there an optimizer better suited for this problem (e.
Josh, Thanks for another great explanation. I migh… Ralph Vince - Apr 5, 2010Josh, Thanks for another great explanation. I might point out to that it is not just the optimization algorithms used, but in the case of mazimizing for greatest probability of profit, there are many posssible optimal sets (f1,..,fn,z+,z-). There are multiple sets which will result in an equivalent (and highest) probability of profit. -Ralph Vince If I understand the optimization problem correctly, I think it may be possible to achieve similar results in just minutes of computation with a different optimization approach.
To continue with the LSPM examples, this post shows how to optimize a Leverage Space Portfolio for the maximum probability of profit. The data and example are again taken from The Leverage Space Trading Model by Ralph Vince. These optimizaitons take a very long time. 100 iterations on a 10-core Amazon EC2 cluster took 21 hours. Again, the results will not necessarily match the book because of differences between DEoptim and Ralph’s genetic algorithm and because there are multiple possible paths one can take through leverage space that will achieve similar results.
Hi Joshua! Could you tell me how to calculate prob… senyai - Apr 5, 2010Hi Joshua! Could you tell me how to calculate probability of drawdown using martingale exponents? I do not want to optimize anything, just calculate dd like Vince did at 173 page. My code: -——————————– port <- lsp(trades,probs, f=c(0.085,0.015,0.129), z = c(-0.76, -0.992, 0.0)) probDrawdown(port,0.8,12,13) -——————————– This code shows me value 0.0001982222, but Vince says his dd is 0.
My last post provided examples of how to use the LSPM package. Those who experimented with the code have probably found that constrained optimizations with horizons > 6 have long run-times (when calc.max >= horizon). This post will illustrate how the snow package can increase the speed of the probDrawdown and probRuin functions on computers with multiple cores. This yields nearly linear improvements in run-times relative to the number of cores.
Hi Josh I am trying to replicate the results on p… Chris - Nov 2, 2011Hi Josh I am trying to replicate the results on page 87 (as mentioned in your post above) of the LSPM book. I do the following: > data(port) > DEctrl <- list(NP=30, itermax=100) > res <- optimalf(port, control=DEctrl) The result is : Iteration: 100 bestvalit: -1.293917 bestmemit: 1.000000 0.000000 0.857813 Page 87 reads: MktSysA 0.307
I have received several requests for additional LSPM documentation over the past couple days and a couple months ago I promised an introduction to LSPM. In this long-overdue post, I will show how to optimize a Leverage Space Portfolio with the LSPM package. Please use the comments to let me know what you would like to see next. Some copious notes before we get to the code: These examples are based on revision 26 31 from r-forge and will not work under earlier revisions (and may not work with later revisions).