Professor Martin,<div><br></div><div>I look forward to your feedback after you have a chance to run the testing_ROI_Martin.R script.</div><div><br></div><div>See a few additional comments below.</div><div><br></div><div>Ross Bennett<br>
<br><div class="gmail_quote">On Sun, Jun 23, 2013 at 7:28 PM, Doug Martin <span dir="ltr"><<a href="mailto:martinrd@comcast.net" target="_blank">martinrd@comcast.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Ross and others,<u></u><u></u></span></p><p class="MsoNormal">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I will check this out.  Meanwhile I offer a few comments below.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Doug<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> <a href="mailto:gsoc-porta-bounces@lists.r-forge.r-project.org" target="_blank">gsoc-porta-bounces@lists.r-forge.r-project.org</a> [mailto:<a href="mailto:gsoc-porta-bounces@lists.r-forge.r-project.org" target="_blank">gsoc-porta-bounces@lists.r-forge.r-project.org</a>] <b>On Behalf Of </b>Ross Bennett<br>
<b>Sent:</b> Saturday, June 22, 2013 10:13 AM<br><b>To:</b> PortfolioAnalytics</span></p><div class="im"><br><b>Subject:</b> Re: [GSoC-PortA] Quick question on multipliers and constrained_objective()<u></u><u></u></div><p>
</p><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">Professor Martin and others,<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div class="im"><p class="MsoNormal">I just added a testing script to match your examples in your 1. theory review weights constrained mvo v5.pdf slides (attached). See committed revision 2402 with sandbox/testing_ROI_Martin.R. Currently, the user just chooses optimize_method="ROI" and optimize.portfolio() takes care of choosing the ROI plugin for solve.QP or Rglpk_solve_LP based on the objectives specified. <span style="color:#1f497d"><u></u><u></u></span></p>
</div><p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">[Doug] I guess you mean that rev. 2402 still requires use of the argument optimize_method=”ROI”.  I’m wondering if my earlier assumption from last summer that the code could be changed so that we don’t have to specify ROI in an argument.  <u></u><u></u></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Brian, what is your opinion on this?</span></i></b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div class="im"><p class="MsoNormal">If "var" is specified as the only objective, then the plug-in selected is quadprog for solve.QP to minimize variance.<u></u><u></u></p>
</div><p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">[Doug] I think we need to specify the solver independently of the use of “var”, with a default choice which could be solve.QP for now.<u></u><u></u></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I am not very confident about the quality of solve.QP.  Maybe Brian knows if there are any test-bed benchmarks on it?  In addition<u></u><u></u></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">solve.QP lacks the following:  (a) The ability to provide an initial set of weights, (b) Lack of a “verbose =” (or “trace =”) with default F.</span></i></b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div class="im"><p class="MsoNormal">If "var" and "mean" are specified as objectives, then the plug-in selected is quadprog for solve.QP to maximize quadratic utility.<u></u><u></u></p>
</div><p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">[Doug] This is a way to go.  But maybe we want to be more explicit and clear by using “quadutil” or “qu” or some such?</span></i></b></p>
</div></div></div></div></blockquote><div>[Ross] Brian mentioned "templated" objective functions in an earlier email and I think this could be part of doing that and should be fairly easy to implement. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="EN-US" link="blue" vlink="purple"><div><div><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p></div><div><p class="MsoNormal">
<u></u> <u></u></p></div><div><div class="im"><p class="MsoNormal">If "mean" is specified as the only objective, then the plug-in selected is glpk for Rglpk_solve_LP to maximize return.<u></u><u></u></p></div><p class="MsoNormal">
<b><i><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">[Doug] Good</span></i></b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div class="im"><p class="MsoNormal">If "CVaR" is specified as the only objective, then the plug-in selected is glpk for Rglpk_solve_LP to minimize sample CVaR.<u></u><u></u></p>
</div><p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">[Doug] Good.  I would prefer to use the term ETL.  This is just my habit, but I must say that CVaR was a bad naming choice by R&S,<u></u><u></u></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">the reason being that the literal translation “conditional VaR” is not what it is about.  I guess in situations like this where some <u></u><u></u></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">People like one name and some like another, we can use aliases???</span></i></b></p></div></div>
</div></div></blockquote><div>[Ross] I think this would be fairly easy to change in optimize.portfolio(). Currently the function only looks for "CVaR" as an objective name. The if statements could just be extend to look for "CVaR", "ETL" or "ES" as an objective name.</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><div><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>
</div><div><div class="h5"><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">This is nice for the user because they don't need to know when to use quadprog and vice versa for glpk.<u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">It appears that the reference manual may be out of date. I could easily make a vignette with several examples about the functionality that optimize_method="ROI" offers.  I'd prefer to do this after we are all satisfied how to set the portfolio object with constraints and objectives.<u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Regards,<u></u><u></u></p></div><div><p class="MsoNormal">Ross Bennett<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p>
</div></div></div></div><div><div class="h5"><div><p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p><div><p class="MsoNormal">On Fri, Jun 21, 2013 at 11:52 PM, Doug Martin <<a href="mailto:martinrd@comcast.net" target="_blank">martinrd@comcast.net</a>> wrote:<u></u><u></u></p>
<div><div><p>Brian and Ross (and anyone else who wishes to comment),<u></u><u></u></p><p> <u></u><u></u></p><p>Thanks for the late evening response.   Good to allow both conventions wrt the sign of risk.  Will check the leading portfolio and risk products for most frequent choice, and then we should go to with the majority.  My priors are that the plus sign will win.<u></u><u></u></p>
<p> <u></u><u></u></p><p>Much more importantly:  I just started browsing the PortfolioAnalytics help files manual, slowly starting to refresh my memory of what little I understood last summer.  Please see the attached version of August 26 (not the latest I know, but almost the last if not the last the Hezky edited)), where I have added a small number of comments here and there.  See in particular my comments on optimize.portfolio.  It would be very helpful if the unfinished business of making ROI invisible to the user is taken care of, and soon we just have solve.QP and Rglpk_solve_LP as optimizer choice arguments.  Even before getting all the constraint object changes, because then I could check running my solve.QP and Rglpk_solve_LP based examples (Ross you are quite familiar with these) run via optimize.portfolio and box constraints.  Then come back to group constraints when they are implemented.<u></u><u></u></p>
<p> <u></u><u></u></p><p>Will keep browsing the manual, and try to understand what is going on.  Brian, I don’t know if you (and Ross) can manage, but examples at the end of each help file would be truly helpful (no pun intended).<u></u><u></u></p>
<p> <u></u><u></u></p><p>Thanks,<u></u><u></u></p><p>Doug<u></u><u></u></p><p> <u></u><u></u></p><p>P.S. Brian, I hope you didn’t hear my phone call at 11:15 or so – I thought you were still live on email and then realized that almost 30 minutes had passed and you had probably crashed. <u></u><u></u></p>
<p> <u></u><u></u></p><p> <u></u><u></u></p><p> <u></u><u></u></p><div><p class="MsoNormal">-----Original Message-----<br>From: <a href="mailto:gsoc-porta-bounces@lists.r-forge.r-project.org" target="_blank">gsoc-porta-bounces@lists.r-forge.r-project.org</a> [mailto:<a href="mailto:gsoc-porta-bounces@lists.r-forge.r-project.org" target="_blank">gsoc-porta-bounces@lists.r-forge.r-project.org</a>] On Behalf Of Brian G. Peterson<u></u><u></u></p>
</div><div><p class="MsoNormal">Sent: Friday, June 21, 2013 8:55 PM<br>To: <a href="mailto:gsoc-porta@r-forge.wu-wien.ac.at" target="_blank">gsoc-porta@r-forge.wu-wien.ac.at</a><br>Subject: Re: [GSoC-PortA] Quick question on multipliers and constrained_objective()<u></u><u></u></p>
</div><p> <u></u><u></u></p><p>On 06/21/2013 10:44 PM, Doug Martin wrote:<u></u><u></u></p><div><div><p>> Small comment:  a lot (if not most) literature on risk takes risk as a <u></u><u></u></p><p>> positive number, so puts a minus sign on the VaR quantile, etc.  I <u></u><u></u></p>
<p>> previously noticed that PerformanceAnalytics takes risk as negative, <u></u><u></u></p><p>> had the thought to change that.<u></u><u></u></p><p> <u></u><u></u></p><p>PerformanceAnalytics allows it either way, user's choice.<u></u><u></u></p>
<p> <u></u><u></u></p><p>Risk is risk of *loss*.  Period.<u></u><u></u></p><p> <u></u><u></u></p><p>Now, the math is sometimes/often easier with a positive number, I admit, but it's typical for risk reports on real portfolios to describe those risks as negative numbers.<u></u><u></u></p>
<p> <u></u><u></u></p><p>So we allow either.<u></u><u></u></p><p> <u></u><u></u></p><p> <u></u><u></u></p><p>Cheers,<u></u><u></u></p><p> <u></u><u></u></p><p>Brian<u></u><u></u></p><p> <u></u><u></u></p><p> <u></u><u></u></p>
<p>--<u></u><u></u></p><p>Brian G. Peterson<u></u><u></u></p><p><a href="http://braverock.com/brian/" target="_blank"><span style="color:windowtext;text-decoration:none">http://braverock.com/brian/</span></a><u></u><u></u></p>
<p>Ph: <a href="tel:773-459-4973" target="_blank">773-459-4973</a><u></u><u></u></p><p>IM: bgpbraverock<u></u><u></u></p><p>_______________________________________________<u></u><u></u></p><p>GSoC-PortA mailing list<u></u><u></u></p>
<p><a href="mailto:GSoC-PortA@lists.r-forge.r-project.org" target="_blank"><span style="color:windowtext;text-decoration:none">GSoC-PortA@lists.r-forge.r-project.org</span></a><u></u><u></u></p><p><a href="http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta" target="_blank"><span style="color:windowtext;text-decoration:none">http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta</span></a><u></u><u></u></p>
</div></div></div></div><p class="MsoNormal" style="margin-bottom:12.0pt"><br>_______________________________________________<br>GSoC-PortA mailing list<br><a href="mailto:GSoC-PortA@lists.r-forge.r-project.org" target="_blank">GSoC-PortA@lists.r-forge.r-project.org</a><br>
<a href="http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta" target="_blank">http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta</a><u></u><u></u></p></div><p class="MsoNormal"><u></u> <u></u></p>
</div></div></div></div></div><br>_______________________________________________<br>
GSoC-PortA mailing list<br>
<a href="mailto:GSoC-PortA@lists.r-forge.r-project.org">GSoC-PortA@lists.r-forge.r-project.org</a><br>
<a href="http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta" target="_blank">http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta</a><br>
<br></blockquote></div><br></div>