SEC Proposes Wall Street Transparency Via Python 278
An anonymous reader writes "A US federal agency is considering the use of computing languages to specify legal requirements. 'We are proposing that the computer program be filed on EDGAR in the form of downloadable source code in Python. ... Under the proposed requirement, the filed source code, when downloaded and run by an investor, must provide the user with the ability to programmatically input the user's own assumptions regarding the future performance and cash flows from the pool assets, including but not limited to assumptions about future interest rates, default rates, prepayment speeds, loss-given-default rates, and any other necessary assumptions.' Does this move make sense? If the proposed rule is enacted, it certainly will bring attention to Python or other permitted languages. Will that be a good thing?"
The above quotes were pulled from pages 205 and 210 of the dense, 667-page proposal document (PDF). Market expert and professor of finance Jayanth R. Varma says it's a good idea.
Ugh! (Score:3, Insightful)
Good Idea (Score:4, Insightful)
Re:its a step in the right direction (Score:2, Insightful)
So write it in 8086 assembler then.
Or, you know, try something new and see if the risks are manageable.
Re:Fantastic! (Score:3, Insightful)
Laws, EULAs, financial statements, personal ads... all very effectively written in English to deceive.
Re:its a step in the right direction (Score:3, Insightful)
Python might not exist in five years, or may become obsolete in five years.
Since the code is freely available, Python will continue to exist one way or the other. That's one of the upsides of open source. Also, Python is closer to bleeding edge than obsolete right now.
The reason I think they specify a language is that otherwise you'll see code switched to whitespace [dur.ac.uk] or brainfuck [sange.fi] before being submitted to ensure maximum confusion. Remember than most organizations who are required to disclose something do so with the intent of obfuscating that legally required information as much as humanly possible.
Good for all legal requirements (Score:3, Insightful)
Re:Good idea. (Score:2, Insightful)
Re:Investors are already making their own assumpti (Score:5, Insightful)
actually... they were selling a car with no brakes... claiming it is safe, then taking out a life insurance policy on the sucker they sold it to.
Re:its a step in the right direction (Score:3, Insightful)
Well, Yeah, but to make a dollar, the code is just
Print "$1.00"
If you're a bank, the next step is:
Lend "$12.00 @ 5%"
If you're on Wal Street, the next step is:
Buy "10 shares"
Gotta love fractional reserve finance.
COBOL (Score:2, Insightful)
Sounds silly to me (Score:4, Insightful)
OK, how about if instead of providing mileage ratings that car advertisements simply had a URL to a Python program that if you entered information about your driving habits that it would come out with an MPG value for a specific car. Obviously, there would be a completely separate Python program for every single car.
Of course, 99% of the weighting would be handled by the questions "Do you drive with a lead foot?" and "Are jackrabbit starts your normal mode?" But the other 34 questions would be there as specified by the government regulation governing the production of these Python applications.
Having a model and the user gets to make up the assumptions, you are getting a traditional garbage-in, garbage-out algorithym. Any model can conform to any belief system given the "proper" inputs. Isn't this half of what the climate arguments are about? Not the code, but the assumptions being pushed into the model?
I can't imagine that this would provide the average Joe Sixpack any useful information. I would say this isn't "transparent" in any way - unless the inputs to the model were published and required to be adhered to. This would make legally binding assumptions like in 2050 there will be fewer literate people than in 2000. I'd like to see the government come up with a plan for that.
Or worse, if a fundamental assumption of the model is rising interest rates and every investor makes 100% return in five years, great. Does the ability to push out a program that says if you enter the five year interest rates as steadily rising then justify advertising that every investor will make 100% of their money?
This also reeks of the idea that if you can't read a programming language you are a second-class citizen. Richard Stallman would be proud.
Re:Python's readability makes it a good choice (Score:3, Insightful)
This would not have prevented the current financial crisis and it will not prevent the next. It's a small step in the right direction, however. The SEC has been one of the most incompetent agencies for some time and I think they're trying to turn themselves around. In this case the SEC is simply acting like a grown up overseeing a bunch of kids. You want to offer a complicated financial instrument to the public, you document it precisely. There's value in this: For example, you couldn't possibly have a third party clear and settle a financial instrument without some ability to do a valuation. A minimum requirement would for that be code describing the instrument's payoffs. This is just one small step towards a world of greater transparency and financial interoperability.
Re:Huh- why? (Score:4, Insightful)
Re:Sounds silly to me (Score:5, Insightful)
I can't imagine that this would provide the average Joe Sixpack any useful information.
Joe Sixpack doesn't typically buy collateralized debt obligations. In fact, if he bought a tranche of a CDO, I think that would immediately disqualify him from his everyman status. The main customers for these sometimes obscenely complex instruments are investment firms.
Problem is, the legalese is so dense, even professional investment analysts have a hard time understanding the payout scheme. If I understand the proposal correctly, the Python code will itself authoritatively define the flow of funds from the investment vehicle. It won't simply be a model that makes predictions based on initial assumptions -- it will also "allow the use of the proposed asset-level data file that will be filed at the time of the offering and on a periodic basis thereafter". Thus given specific data about the performance of underlying assets up to any given point, the code will spit out an authoritative answer of "who gets paid what (if anything)".
Since a structured investment vehicle is essentially an algorithm wrapped in a contract, it makes sense to use a programming language to specify that algorithm. I personally like Python; but I agree with other posters who have said the regulation should ensure that other languages can be added over time.
Re:its a step in the right direction (Score:5, Insightful)
That's a good point to make, though I think your estimate of 5 years does little justice to Python. Regardless, the problem with NOT specifying a language is that it means I can make my own proprietary language and release that source code (and not the compiler, say).
Also, Python is open source through and through : community developed, open specs, several open source implementations. This means that even if one day 25 years from now Python is a dead language as far as practical usage goes, it will be no harder to understand and execute as it is today.
Re:Python's readability makes it a good choice (Score:3, Insightful)
What is the difference in Gambling and Investing?
Whether the odds are with you or against you.
Re:Rule 1291.3120-b-Clause 32 Section 1.1 (Score:3, Insightful)
Chess is a game where there are only two players, there is no element of chance, and both players have all available information about game state at any given time. Which makes it laughably simple compared to finance.
The whole credit default swap thing IMO looks most like an n-player iterated prisoners dilemma, except that the (n-dimensional) payoff matrix itself varied as the game played on, and no one player knew all that much of it.
Re:Is nobody else flashing back (Score:2, Insightful)
Re:its a step in the right direction (Score:4, Insightful)
You could say the same for English, since it changes constantly. Then again, English never had well-defined syntax or semantics in the first place...
One reference language is a far better choice than a whole slew of them. To much unnecessary flexibility just adds complexity. Even if mainstream Python went in a different direction, the legally mandated dialect would survive for that purpose.
Re:Good idea. (Score:4, Insightful)
Better yet: If you do not understand an investment, don't buy it.
Really. There's no shortage of investments that are *easy* to understand, and the lack of free lunches means that investments you -don't- understand, tend to come with drawbacks that are invisible to you, because you don't understand them.
What's wrong with: "Buy 100 shares of a company with a total of 1M shares, if the company pays a dividend, you get 100/1M of it, if the company goes broke, your investment is lost. There's a $5 fee for the purchase, but other than that no fees or associated costs whatsoever"
Too simple ?
Re:Fantastic! (Score:3, Insightful)
Sure, but it's better to have that hack disclosed in such a way that machine analysis can find it than disclosed in such a way that it only becomes evident after a corporate lawyer brings up an obscure precedent to a judge.
Re:Good idea. (Score:3, Insightful)
Wanna know who wins the game of natural selection?
The one ignoring your rules of ethics.
Plain and simple.
Re:Good idea. (Score:1, Insightful)
But those assumptions could be backed out through simulation. Runs 10^8 scenarios through the model, calculate the expected return for the bankers and you know their assumptions.
Re:Good idea. (Score:1, Insightful)
The added complexity is a necessary evil to express things in an UNAMBIGUOUS way, expressing things unambiguously is something managers marketing lawyers and other econotypes fail at every time. Go distribute some text written in econolawyerjargon and see if 100% of all the econodudes you give it to there understand exactly the same thing. You'll always end up with x number of people interpreting it as A and y number interpreting it as B andsoforth, programming languages eliminate this completely, they'll always produce the same result, regardless of machine (or operating system in the case of python). It's black and white and there's no room for grey by design.
Re:Good idea. (Score:3, Insightful)
> My view is that there just is no substitute for a system of social morality like those in eastern cultures of old. Modern society has
> the attitude that "if it's not illegal, do it".
"The very emphasis of the commandment: Thou shalt not kill, makes it certain that we are descended from an endlessly long chain of generations of murderers, whose love of murder was in their blood as it is perhaps also in ours. " -- Sigmund Freud
He may not have gotten a lot of things right, but, I think he hit the nail on the head there. If such a time of morality existed, then we would never know about it. There is no need to tell people not to kill each other if nobody is doing it. No need to write down a code of morality, unless you believe that the people around you sorely need one. (or to bring it back to home, you don't find passive agressive notes offering to hold classes on how to use the dishwasher next to sinks in shared living spaces where everyone cleans up after themselves)
On the whole, I agree. Frankly, I think there is something to the old Erisian maxim "Imposition of Order = Escalation of Chaos". Order seems great but, people like to play games, we are good at games. You can't start giving me a bunch of rules without me instinctively starting to look for how your new game works, and how to play it well.
Rules can't bring about morality, if anything, they can only work to subvert it. Its only when you strip away the rules of the game and look at the other players that morality comes into play. There is no morality involved when a poker player soft calls into a check raise with the nuts, no more than when a monopoly player builds hotels, or a magic player hits you with 30 point drain life on the second turn... consistently. Should we expect wall street players to really act differently? When everything is abstract numbers and rules, its all just kind of a game.
-Steve
Re:Good idea. (Score:1, Insightful)
Yeah, those dirty "Wall Street Types".
How many programmers were arrested in the Madoff scandal?
Re:Good idea. (Score:3, Insightful)
You, sir, are the very quintessence of arse.
Re:Laws are different. (Score:3, Insightful)
2) Badly written laws can just as easily be written in Python as they can be in some human language. Judges etc are normally far more familiar with the official language of the courts.
Yes, but there's a very practical difference here. It's all too common for lawyers to respond to questions about a new law's actual meaning with "We don't know yet; we'll have to ask the court system". This can be and is done; it's not unusual for new laws to trigger a number of court tests to determine the actual legal meaning of the law.
The problem is that this can be expensive, in both time and money. Court tests can take years and millions of dollars.
If the "spec" for a law were coded in Python (or some other language with a public spec and implementation), tests of such laws could be conducted in minutes, with negligible cost. Of course, this would require paying expert programmers who are familiar with the language. But a few hours of such a programmer's time would be orders of magnitude cheaper than months or years of legal costs.
This is really the same argument as the reason that most business computing is now done by computers. Yes, all the calculations could be done by hand, by human accountants using pencil and paper. But this would mean paying large teams of professional accountants for months of work to do what a computer can do in a few seconds for a few dollars (when amortized over the computer's lifetime ;-).
There are, of course, a lot of practical problems with software "solutions" to legal problems. We're all familiar with the difficulty of writing bug-free software. But again, this is not materially different from the difficulties in writing bug-free legislation. The difference is mostly that the software form could be testable in seconds rather than years, for a few dollars rather than millions of dollars.
And, of course, the opportunity for bribery and fraud in the software testing is nonzero. This is similar to the possibility of bribery and fraud in the legal system. It's just faster and cheaper.
A major difference is that a software process is (in principle) totally documentable. This isn't true of the legal system, most of which is hidden from public view and unknowable to those not directly involved. Software tests can easily be recorded and published.
Re:Good idea. (Score:1, Insightful)
In the short term.