Email not displaying correctly? View it in your browser.


Investment technology for the 21st century.
Two bugs

Two bugs have come to light.  You are unlikely to hit either, but the first will silently give you wrong answers.

Lower bound only on turnover

If you generate random portfolios or do an optimization and ask for a lower bound on the turnover without a binding upper bound, then it drops the turnover constraint altogether.  So you don't get the lower bound.

Using objects created in the Portfolio Probe Cookbook http://www.portfolioprobe.com/user-area/documentation/portfolio-probe-cookbook/ the following is an example:

bad <- random.portfolio(100, priceVector, long.only=TRUE, gross=grossVal, existing=curPortfol, turnover=c(1e5, Inf), out.trade=TRUE)

We can see that the turnover has been dropped because almost half of the portfolios violate the constraint:

> mean(valuation(bad, priceVector,
+    collapse=TRUE) < 1e5)
[1] 0.47


If the upper bound is infinite, there is no warning.  But there is a warning if the upper bound is finite but too large to be binding.  The warning looks like:

maximum turnover constraint (1e+300) is not binding

As long as your turnover bounds are finite and you don't get this warning, you will not hit the bug.

Only one portfolio from random.portfolio.utility

If you ask for one random portfolio from random.portfolio.utility, then it will give you two instead.

You have been sent this email because you have opted-in on our online request form.

Unsubscribe pburns@pburns.seanet.com from this list.

Our mailing address is:
Burns Statistics
4-b Jodrell Road
London, England E3 2LA
United Kingdom

Add us to your address book

Copyright (C) 2012 Burns Statistics All rights reserved.

Forward this email to a friend
Update your profile
Email Marketing Powered by MailChimp