164 karma · joined September 10, 2010
C++ is all about low-cost abstractions. Any speed difference between the C++ way and the C way should be very small, and the C++ way is safer. Use std::string (and std::vector and all the rest) unless you have a very good reason not too, and then you should probably just write your own custom implementation. Reverting to the C way is just asking for issues.
Fun fact: HFT has an annual revenue ~1/50th[1][2] of Google's. What's worse: a few hundred people wasting their time moving prices of select stocks a few pennies, or several thousand wasting their time collecting scary amounts of data about you to try and get you to click an ad?
[1]http://en.wikipedia.org/wiki/High-frequency_trading#Market_s...
But beyond that, artificial competition could be a good thing. The large companies have a lot of advantages over the smaller companies, like economies of scale and name recognition, but they also have an incentive to stifle innovation (either directly or indirectly through the Innovator's Dilemma) and erect barriers to entry. Allowing smaller companies to "steal" CEOs helps offset some of those advantages. Even if they aren't well suited to that role, the name recognition alone can be an advantage (just look at SolarCity).
But I keep going back and forth on this. Set the salary cap too high, and the small companies can't steal the CEO away. Too low and it doesn't properly reward them for the difficulties of managing 200k+ person companies. A proper middle ground, if it exists, would be hard to find and need constant adjustments.
Keeping the business world artificially competitive is an interesting idea, and not as bad as I initially thought.
There are no down arrows on submissions. They only appear
on comments after users reach a certain karma threshold.But I just looked the exact numbers up. The S&P 500 opened January 2nd at 1467.97 and closed December 31st at 903.25. A 38.5% loss instead of the 60% I said, but that's still almost twice the loss of the hedge funds.
They managed to raise the money to cover the loss, but afterwards they were getting round 10% of their normal order volume [1].
Somewhat ironically, the closest thing they had to a kill switch, backing out the code, actually made the situation worse as it made all 8 servers misbehave instead of just the first one[2].
The full SEC report in [2] is an interesting read, just skip the parts about "regulation 5c-15...".
[1] http://www.businessinsider.com/look-how-knight-capitals-trad...
http://googleblog.blogspot.com/2012/03/helping-hooch-with-wa...
char* plain_text = malloc(size);
///do stuff with plain_text
memset(plain_text, 0, size);
free(plain_text);
For most programs that last memset is unnecessary (and may even be unnecessary according to the standard, but it's probably implementation defined, not undefined behavior) and it makes sense for the compiler to optimize it away. But for crypto purposes you have to be afraid of someone being able to read plain_text later, so the memset is importantIf I was the program director though, I wouldn't be worried yet. We just got out of the coldest winter in recent years, and in a few months we can tell if no one is riding the bikes because the novelty wore off or because it was cold.
> Mr. Ackman has said he will donate any profits he personally earns to charity, calling it “blood money.”
And that's ignoring the fact that we live in a capitalist society. You need money to get things done. If no one stood to make a profit from this the effort wouldn't be nearly as well run. This is the market working at its best (at least in principle), rewarding people who put in lots of effort to reveal information that benefits the public.
Also, before anyone points out that the limited supply is keeping taxis out of the poorer areas, there recently introduced boro cabs[2] are meant to solve this specifically, with limited areas where they can pick up passengers and a much cheaper medallion ($500/year instead of ~$200k/year).
[1] http://factfinder2.census.gov/faces/tableservices/jsf/pages/...
In this case, the bonds are such short term that the banks are probably using them basically as cash on hand to pay bills that are due at the end of the month or something while getting some return along the way. If the payment is delayed (or god forbid defaulted on entirely) suddenly they can't pay their bills. Then they have to either pull out of their other investments early (which will drop the prices of those investments), or turn to their own bond holders/power companies and say "it's not our fault we can't pay, it's the governments" which leads to a not-so-nice cascading effect. That's why Wall Street is so unsure what will happen, they aren't sure what they can do in the situation and how far their actions will cascade out.
> The median 401(k) balance for households headed by people aged 55 to 64 who had retirement accounts at work was $120,000 in 2011
The 77 year old highlighted is just an easy way to personalize the larger statistics.
Also, the entire point in creating these structures is to introduce the multiple and very different risks. You start with collateral that is exposed to a bunch of different risks, and you end up with bonds that have only 1 specific and unique risk (in theory). Then whoever buys the bond only has to worry about hedging that one specific risk (or using it as a hedge for that specific risk) instead of trying to balance 5 or more different hedges.
Randomizing the execution order makes the spread even wider, because now you need to beat everyone instead of just tying if you want to guarantee execution. And again, the HFT firms don't care if any particular order executes. Although randomizing the order would probably reduce the incentive to co-locate, but I'm guessing the larger firms would still want quicker access to the last price, just in case.
Also, in all of this I'm assuming no one outside of the exchange can view the actual book, just the last price. If you let people see the full book, as they can now, this is all a wash anyway as they'll just "trade" by placing and cancelling orders right up until the next tick.