HNHacker News
TopNewBestAskShowJobs

gd1

455 karma · joined February 23, 2012

submissionscomments
gd1··on The Statistical Dominance of Dr. Seuss
How and why does J.K. Rowling count as 'children's books'?
gd1··on Only 3 northern white rhinos left on Earth
Uh-huh. We're probably the only species to ever even give a fuck that we drove another species to extinction.
gd1··on A detailed data-centric exposé on how the market is rigged (2014)
>No it's not, since with the houses it would be easy to verify that there's no 3 houses available. The trader in the Nanex article had no way to know how many of the 24800 shares were actually available. He's trading at an information disadvantage.

You are correct, public markets are anonymous by design, so there is no way to tell that the same liquidity is being offered in more than one place. That doesn't change the reality that it is. As I explained, it must be, or the transition from 1 exchange to 13 exchanges would have seen offered liquidity by market makers cut to 1/13th.

So like I said, anyone with a working mental model of the market knows this. You can't just aggregate displayed liquidity at each venue and think that number is valid. It doesn't matter what your 'screen' is telling you if the screen is doing something that makes no sense. No one ever pretended that you can magically execute on different exchanges as if they were one exchange. No one ever made that guarantee. The only people who think that are wingnuts like Eric.

And since we are talking about an issue that only effects people sending very large orders to multiple exchanges, the likes of Katsuyama have no excuses for their ignorance. They are paid to be on top of these details. You can't have a 'trader' in the modern age who doesn't know what a millisecond is, or isn't prepared or capable to dig below one abstraction layer. "dUh, my screen say 24800 shares are there and i pressed buy" is not what you pay an execution trader for. It is his fucking job to know what happens when his order goes down the wire.

>To your analogy, it would be similar to a real estate agent flooding the market with multiple listings of each house, but with different pictures and different addresses, giving the impression of a buyers market to a buyer (phantom liquidity).

They are not "flooding the market" or trying to present "phantom liquidity". They are doing exactly what you do when you put the house on 3 different websites. Trying to increase your chances of finding a customer. They are forced to put bids and offers on 13 different exchanges, because that is US equity market structure. It's no fun. Life would be a lot simpler if there were just one exchange. As I explained, it's like playing russian roulette for them... they are now forced to take the chance that they may get filled simultaneously on multiple exchanges and take on more risk than they are comfortable holding. But they are forced to do that since their customers are now spread across 13 exchanges. Market makers would like nothing better than to have 1 exchange. Arbitrageurs are the ones who love having all this fragmentation.

gd1··on A detailed data-centric exposé on how the market is rigged (2014)
>(as well as your first paragraphs) demonstrate that this "liquidity" isn't real in the first place, and gets withdrawn if anyone tries to trade on it.

Where? I have explained that it is real. The confusion stems from thinking you can sum up the orders at each exchange. It would be like seeing the same house on three different real estate websites and then thinking you can buy three houses. They are the same house. Listed three times. The liquidity listed at the 13 different US equity exchanges is listed by the same market makers, so you can't sum it. Do you understand?

>But in an order book, orders are supposed to be firm and executable. If they aren't, the market is rigged. As it very clearly is.

How aren't they executable? No one can see your order coming. If you send a single order to NASDAQ or any other exchange it will execute. They are all executable and firm at the exchange level. Nanex seems to think you should be able to execute everything visible at all exchanges at once. You can't.

gd1··on A detailed data-centric exposé on how the market is rigged (2014)
I think where Eric Hunsader (and Michael Lewis) go wrong is that they have a big flaw in their mental model of the market. They make the assumption that if say 500 shares are offered at exchange A, and 500 shares at exchange B, then they are entitled to sum those two numbers together and assume that there are 1000 shares on offer. This is wrong. This is the basic mistake that they just can't wrap their heads around. I will try to explain as simply as I can from the point of view of a market maker.

Imagine you are a market maker trying to make the spread and provide liquidity back in the old days. There is only a single stock exchange. Your firm obviously has a limit on how much risk it can take. How much capital/money it has available. So let's say you are allowed to post 1000 shares on the offer and 1000 shares on the bid. You are not allowed to hold a position of more than 1000 shares long or short. Life is simple.

Then things get complicated. A competing exchange is now set up and begins to thrive. Yay for competition! Yay for the free market! But you still have the same limits on your capital and risk. What do you do? Do you now post 500 shares on the first exchange and 500 shares on the second? You could do that. Then you are guaranteed that you will never be long or short greater than 1000 shares. You'll never break your limit. But what happens when there are 10 different stock exchanges? Do you post only 100 shares at each one? Should the available liquidity in the market be fragmented into 10 pieces? Of course not.

So what you do is post your bids and your offers for your full amount on each exchange. And then if you get filled on one exchange, you cancel your orders on the other ones. This isn't crazy, this isn't radical, this isn't some nefarious plot. It happens every day in all sorts of markets. I might put my house for sale on three different real estate websites. When it sells on one, I cancel the listing on the other two. No big deal. Or if I am a fisherman in India, I might send my sons to three different markets to sell my catch. When one finds a buyer, he phones the other two and tells them. (http://qje.oxfordjournals.org/content/122/3/879.abstract). This is simple stuff.

In more technical terms, the offers and bids are all bona fide ab initio. They are all bona fide when initiated. When posted, you do actually want to sell or buy at that price. When you get filled at one exchange, circumstances (your inventory) have now changed, and you are entitled to cancel.

Note in my explanation, the market maker isn't front-running, or even back-running, they are just responding to their own personal changes in inventory level (position) that means they can no longer offer those shares at the other exchanges. Electronic market makers may well have sophisticated models that predicts the short term price move causing them to pull orders at other exchanges, but we need not even consider those models to explain this behaviour. Changes in inventory is ample explanation.

Of course, by posting their full available inventory on each exchange, market makers expose themselves to a new risk. Someone might come along at the exact same instant and fill them on every exchange! Then they will be over their limit and massively exposed. Luckily, they have very fast systems and low latency lines to help protect them from this. If they didn't, they would be forced to offer 1/n times their current liquidity, where n is the the number of exchanges. That would suck for all liquidity consumers.

Which brings me to the most amusing part of this whole story, is that when the 'hero' of Flash Boys Brad Katsuyama figured out he could precisely fire off orders so that they hit all exchanges at the same instant in time with his 'thor' program, the SEC came knocking. Because behaviour like that, ambushing market makers on multiple exchanges, could in fact force market makers to offer much less liquidity. I don't have a problem with it, but it amuses me that the supposed hero was the one probably endangering market structure.

gd1··on Plan for New Stock Exchange Stirs Debate
The problem with a FTT is that it is a cascading tax. Whereas a VAT or GST is charged only on the difference between input and output. I buy some wood for $10, make a table, sell it for $15, GST/VAT is 10%, so I pay out $1 buying the wood, and collect $1.50 selling the table. I only have to forward the difference, 50c, to the government.

With an FTT, that 'tiny' tax is charged indiscriminately all the way through the chain. And passed through the chain to the end consumer. So the market maker pays it twice (in and out of a position) and their margins are razor thin. So spreads will increase by twice the tax for starters. Plus you as end consumer will pay it twice (on buying and selling). So at a bare minimum that 0.1% will be 0.4% for an end consumer. More if more middlemen are involved in the chain, since it just compounds. What are annual returns? 4-8%? So we're talking about the government taking 5-10% of your profits? Does it seem tiny still?

gd1··on Plan for New Stock Exchange Stirs Debate
Which is kind of the point. If people think that rolling auctions are better than a CLOB, they are free to set up exchanges that use auctions and see if anybody trades on them.

Spoiler: No one will.

Or are they arguing that the government should step in and tell people how to trade?

gd1··on Indonesia is burning. So why is the world looking away?
It's even dumber than that. This isn't fossilized carbon, that hasn't been a part of the carbon cycle for a few geological epochs. No, this is carbon that is an active part of the current carbon cycle, that has in just the last few decades/centuries been pulled out of the air and turned into plant/tree matter.

It is utterly irrelevant that it is being released now. It will be reabsorbed when the forests regenerate. If those trees had died of non-fire causes, they likely would have rotted in the open air and released methane anyway. This is just natural noise in the carbon cycle, which would occur if the human race didn't exist. Global warming is the theory that by digging up FOSSILIZED carbon, that isn't part of the current cycle and releasing it we are forcing the system out of the prevailing equilibrium.

Classic stuff from good old George Moonbat, who is notorious for struggling with the science bit of his job.

gd1··on Why Virtual Classes Can Be Better Than Real Ones
Ha, yeah I was expecting an in-depth read on gcc's devirtualization feature.
gd1··on Academics sharing paywalled papers with a codeword on Twitter
Not only that, but in the case of MSVC/Visual Studio you have a talent feedback loop as well as a financial one. They need people to be pirating it or they'll have no windows developers in the future.
gd1··on The fall of the meritocracy
That's a very good point. I know you're trying to be sarcastic, but if you had any self-awareness you'd stop and ponder it. Who do you think ends up doing 'climate science'? Why?
gd1··on How to know if where you live is “up and coming”: fried chicken vs. coffee shops
It's plenty 'racist' here in the UK (at least under the left-wing redefinition of the word racist as any mention of race at all). Chicken shops and jerk chicken are associated with the African-Caribbean population.

All he's done with his analysis is used two thinly disguised proxy variables to hide his true hypothesis, which may very well be a good hypothesis but is unpalatable to discuss in public.

gd1··on 19th Century Marriage Manuals: Advice for Young Husbands
Hmm, so the Victorians were " Selfish, oppressive, iniquitous, abusive, racist, hypocritical, and worse". I'm curious, you mention "numerous physical and cultural genocides against native populations around the world", can you give me a similar critique of one of these native populations? Pick one. Describe their morals and social norms for me.
gd1··on 19th Century Marriage Manuals: Advice for Young Husbands
“The same law which imposes upon the husband the duty of supporting his wife, gives him a general and paramount claim to her obedience.”

I bet you don't get this bit in return.

gd1··on Scientists to nudge asteroid off course as practice for protecting Earth
I think you're a bit confused by nuclear scare-mongering. Large fusion H-bombs put out stuff all radiation. And radiation isn't very deadly anyway.
gd1··on Children of the Yuan Percent: Everyone Hates China's Rich Kids
Cool headline, but given the population of China, we're probably talking children of the 0.001%
gd1··on The 'Flash Boys' Exchange Is Growing Up
I believe the discrepancy comes down to whether you count opposing counterparties indivdually or not. i.e. If 6 trades involve 6 non-HFT/non electronic market-maker (referred to as 'naturals') trading against 6 other naturals, and the other 4 involve naturals trading against resting HFT liquidity, you could either count that by counterparty that is HFT - (4 out of 20 counterparties) = 20%, or the number of trades that involve someone taking HFT liquidty - (4 out of 10 trades) = 40%.

So the 17.7% of HFT counterparties squares roughly with 30%+ HFT trades.

gd1··on Joint Allocations in C++
>Write all your code this way and soon you'll stumble with all the nastiness of manual memory management.

See, this is what I never quite understand. I use C++ when I want to do C type things. Manage my own memory. Bit twiddle with speed. Avoid all dynamic allocations. Increase cache coherency. Call inline assembler. Use the CRTP to achieve static polymorphism. Design my own containers. Lock free containers with atomics. Etc. If I'm using C++ I want nastiness. I want to get down and dirty.

Why on earth would you ever want to use it as a higher level lanuage? It sucks balls at that. Just go and use a proper, nice, well designed high level language instead. If I want a language that holds my hand and protects me from the evil pointers, I'm not choosing C++. Using C# or Java (for example) is complete luxury compared to C++.

But apparently, there are a whole bunch of people that do attempt to use C++ for this purpose. Who strive to achieve a language where you never see a raw pointer, but you are still stuck with maybe 30% of the productivity you'd have in a proper higher level language. It boggles my mind. Congratulations, now you have no garbage collection, a crap IDE, you're still wrestling with forward declarations of classes and header files and the preprocessor and linker options and slow compilation and you've now buried the machine under a layer of abstraction. The absolute worst of both worlds.

>brings both the benefits of C-like speed and higher level languages safety.

It doesn't. You end up with neither!

gd1··on Understanding ETF “Flash Crashes”
>Your scenario doesn't handle the case a market order does, i.e. close my position now.

I covered that. If you really, truly, want to sell at any price(and I can't imagine why, that is terrible trading), then you set your limit to zero.

That's all a market order is - a special case of a marketable limit order (immediate or cancel/fill and kill/etc) with the limit set to zero (in the case of a sell) or infinity (in the case of buy).

Banning vanilla market orders just forces people to acknowledge that fact, which is a good thing.

gd1··on Understanding ETF “Flash Crashes”
>To ban a market order is to tell me I'm not allowed to enter/exit a position in a single order, that's non-sense.

You could carry on trading as you currently are. If a stock is trading $100/$100.1 and you want to buy it ('now' as you say), then just set your limit to $1000.

Of course, you will have no one to blame but yourself if, during the ~50 milliseconds it takes for the order to reach the exchange, the market makers have switched off and you end up crossing a massive spread and buying the only available offer at $600 or something. An incredibly unlikely scenario, but it can happen.

So I imagine you'll set your limit to something sensible, like $101. It'll still get filled 'now' 99.9999% of the time. But you won't be taking the risk of doing something epically stupid. There, that wasn't so hard now was it?

gd1··on Mini flash crash? Trading anomalies on manic Monday hit small investors
Monday saw the first ever limit down halts on major equity index futures (YM/ES/NQ) on CME Globex. It was an unmitigated disaster. It happened at a critical time (heading into the cash open), and caused chaos in the ETFs that have these futures as the underlying. Market makers price and hedge ETFs like SPY (the Spyder S&P 500 tracker) off the future. So being unable to do so since the underlying was frozen, they did the only thing they could naturally do and blew out their spreads and backed away. Even then, some unfortunate and panicky people crossed those spreads and some SPY changed hands at -14%. There is no legislating against stupidity.

Then when ES and the other futures did unfreeze, they promptly plunged to a second limit down in extremely thin trade. Why so thin? Because when you stop trading, everyone empties out of the orderbook, and they don't necessarily dive straight back in once it unfreezes. Liquidity gradually comes back as participants assess that the price is stable and they can start quoting again.

Monday was not a good day for your argument.

gd1··on Mini flash crash? Trading anomalies on manic Monday hit small investors
You realize things keep happening while your volatility interrupt is in force right? Everything else in the world keeps trading. There is no guarantee when it starts trading again that it won't open 20% down. If you don't want a stop loss to trigger, don't place one.

Imagine you have a stop loss, which doesn't trigger, then the market vol interrupts, then the price opens 10% below your stop loss.

Oops, you'd be moaning about that instead.

gd1··on Science Isn’t Broken
http://climateaudit.org/
gd1··on Technology has created more jobs than it has destroyed, says 140 years of data
Look around you. Pick any product you like. A thousand financial transactions went into making it, all along the supply chain. Currencies were converted and hedged, iron ore and copper and crude oil futures were purchased and sold. When technology squeezes out middlemen and makes them more efficient, you gain.
gd1··on What are the 10 most harmful jobs?
No it fucking doesn't. It feeds the human race.
gd1··on What are the 10 most harmful jobs?
It's pretty implausible that farming is a harmful career as well. But, oh look, there they are at number 2.
gd1··on Ocean acidification may cause dramatic changes to phytoplankton
>There's little risk of CO2 shortage. Every animal on the planet exhales it.

Erm no. Exhaling it is just part of the carbon cycle, it doesn't make the net level in circulation go up or down, it isn't a sink or a source... the carbon you breathe out doesn't get magicked out of thin air. It comes from the sugars, fats and protein you eat which is then burnt by your body for energy, exhaled, photosynthesized by plants, consumed by animals, and moves on up the food chain where you eat it and we start again. Round and round. That's why they call it a cycle.

Without our intervention the net amount of carbon in the cycle would continue to fall due to weathering of rocks and sequestration beneath the Earth, eventually leading to the extinction of all trees and most (non C4) plant life. Luckily, we're digging it up to restore the carbon cycle to its former glory. I think about 800ppm should be our target.

gd1··on Ocean acidification may cause dramatic changes to phytoplankton
From your link: "The trigger for these mass extinctions appears to be a warming of the ocean caused by a rise of carbon dioxide levels to about 1000 parts per million."

That is fucking miles away. At the other end, C3 plant life goes extinct if CO2 falls below 250ppm or so? So why don't you alarmists get your knickers in a twist about that "tipping point"?? If we hadn't dug up and put some fossilized carbon back into the carbon cycle (where it bloody well came from in the first place) then we'd be facing that extinction scenario instead.

gd1··on Ocean acidification may cause dramatic changes to phytoplankton
From your link: "The trigger for these mass extinctions appears to be a warming of the ocean caused by a rise of carbon dioxide levels to about 1000 parts per million."

That is fucking miles away. At the other end, C3 plant life goes extinct if CO2 falls below 250ppm or so? So why don't you alarmists get your knickers in a twist about that "tipping point"?? If we hadn't dug up and put some fossilized carbon back into the carbon cycle (where it bloody well came from in the first place) then we'd be facing that extinction scenario instead.

gd1··on Ask HN: APL family instead of R for data analysis?
I use both. R is slow as a dog, Q/KDB+ is (almost) as quick as C. R is ugly, Q/K is beautiful and elegant. R has a wealth of open-source packages, Q not so much.

Best solution is to do most of your work in Q and call into R when you want to use a package. The R integration works well, see http://code.kx.com/wiki/Cookbook/IntegratingWithR.

The reality is that if you are using (and paying for) Q/K, you are likely doing so because you're dealing with billion+ point datasets. At least. R just melts and falls apart at that kind of size (without using native code, which isn't really R then is it?). So I often end up just translating R functions into K equivalent, and just using R for the nice-to-have features like latex/brew/ggplot/etc.

← PreviousPage 3 of 10Next →