I doubt this is true, but there are definitions attached to front-running.
I doubt this is true, but there are definitions attached to front-running.
There's someone on the other side of your trade when you want to trade something. You're more likely than not choosing to interact with an HFT player at your price. If you're getting a better price, that's money that you get to keep.
*I'm going to disagree on "free pass" also. HFT is pretty often criticized here.
Are the folks at Jane Street making money because they are smart, or because they use that perception to perpetuate some scam?
I interact with a lot of Harvard kids. Some of them are from Long Island, they know dads who work at that Republican's hedge fund. They are smart kids. They have good cognitive gifts.
But not once - not from word of mouth, or directly from them, or someone, ever, anywhere - have I heard a common sense way these guys make money due to intelligence, instead of due to a scam or due to luck.
It is really frustrating. So much human potential wasted on chasing the dollar sign. They are in denial that it is scams.
It has always been scams. Why is this so hard to believe? Why in the absence of any positive evidence, like "oh here is our genius but nonetheless expired" trading strategy, which anyone could have furnished in the last two decades, they agree, oh it must be real?
The simple answer seems, because if you believe it to be real, you can be this specific kind of Harvard + New York + "X" kid - and seriously, they are all cut from the same jib, superficially and inside their character, it tarnishes the institution - and you can do this scam and pocket your change and eat dim sum with 20 people on the weekends and have a skinny girlfriend and buy a condo. You can do something pretty meaningless with your life in exchange for the burn out.
This scam life lets 20 year olds not hear from their horrible parents that burned them out and gave them no meaning. Eventually they turn 30 and hope that a decade went by without a crash, and then life decides for them to sell before the ponzi collapses. Like you have a baby with your skinny girlfriend and you buy the condo and great, you sell, and it happens to be well timed!
I fucking hate Jane Street, I have hated them since I've known the assholes who intern there, and I don't know why this Bankman-Fried guy got such a big pass for scamming literally millions of people, and why this Caroline girl isn't going to be sent to jail, and it's frustrating because you can actually tell! You can predict this from when these kids are 20!
Jane Street has some good people. Harvard has some good people.
Both have some bad people.
I don't know how "scam" is defined, because sometimes people use it for things they just don't like.
Some of the issues mentioned include:
- Keeping synthetic test data generation as part of a production build.
- Keeping dead code for years.
- Re-purposing a feature flag.
- Refactoring without regression tests.
- Manual deployments without peer reviews. They forgot to update one of their servers with the new code.
- Automated alerts sent via email were ignored.
- Rolled back to a version of the code running on the server they forgot to update, making things worse.
- Rushing out a release without proper software engineering hygiene.
The article suggests improvements that could have prevented the chain of events.For those here who are in HFT circles, have things improved after the Knight Capital Group debacle?
edit: formatting
They won't do a trade if there's no one to instantly sell to, so they aren't adding liquidity, or am I missing something?
I can address some parts of this.
"HFT works by reacting faster than another market participant"
- There are a bunch of different HFT strategies. In this case, we're usually talking about market making, which means you are placing limit orders at a price where you don't believe it will execute immediately. You can react to many things - price movements, events, anything. - In placing a resting order, where is there an assumption that another participant was willing to do the same trade? Sometimes (pretty often) all the orders on a price level are HFT participants, and if you look at the market feed it's pretty easy to tell. - In that case (which I claim is pretty common), the liquidity was not already there. - If we consider that average spread sizes have reduced significantly with electronification and HFT, then you also disprove this assumption that "the liquidity was already there". Liquidity is not just the willingness to buy or sell, it's also the willingness to buy and sell at a competitive price. Otherwise, I mean, I'm always willing to pick up TSLA at $.01, and I'm always willing to sell TSLA at $500k. Doesn't mean I'm providing liquidity.
"They won't do a trade if there's no one to instantly sell to"
- That's simply not true. If you've taken a look at the order book, the fact that an HFT order is resting on the book (and not executed) means that there was nobody to instantly sell to. - Are you suggesting that HFT firms all know that someone is going to come through and buy at a price level, and hop in? Flash Boys suggests this (and it's possible to infer some "whale" actions if they route their orders poorly), and that type of inference is possible sometimes, due in part to the way the US Equities ecosystem is set up. But I'll also ask you - have you thought about the order of operations in which someone might "know that there is someone to instantly sell to?" Consider the CME (futures exchange), where there's a ton of HFT, and for which there are no other markets. How is your sentence supposed to work? - Also, perhaps empirically, that was simply not true for my firm, which was (and still is) a pretty successful one.
https://www.cnbc.com/2020/03/09/robinhood-app-down-again-dur...
If you want to work on the trading systems, you should be good OS-level and network-level things. And you should probably know C/C++. I think some firms might still use Java.
Good firms have probably been around for a couple of years, so it's unlikely that they'll use the cool new languages of the day.
Again this weirdly mixes HFT with electronic automated trading, which I really don't think anyone in the domain would readily mix.
HFT by arbing over latency is entirely different to the automation of boring trader tasks that see less people employed to do the same thing in the front office.
I can't continue this more, it's just blind allegiance from people who are clearly not in the domain.
HFT != electronic trading
HFT is also not equivalent to arbing over latency.
Its a finance firm - i.e scam firm. "We have a fancy trading algorithm that statistically is never going to outperform just buying VOO and holding it, but the thing is if you get lucky, it could".
Scammers are not tech people. And its pretty from their post.
> In Python, imports occur at runtime. For each imported name, the interpreter must find, load, and evaluate the contents of a corresponding module. This process gets dramatically slower for large modules, modules on distributed file systems, modules with slow side-effects (code that runs during evaluation), modules with many transitive imports, and C/C++ extension modules with many library dependencies.
As they should.
The idea that when you type something in the code and then the interpreter just doesn't execute it is how you end up with Java like services, where you have dependency injection chains that are so massive that when the first time everything has to get lazily injected the code takes a massive amount of time to run. Then you have to go figure out where is the initialization code that slows everything down, and start figuring out how to modify your code to make that load first, which leads to a mess.
If your python module takes a long time to load, this is a module problem. There is a reason why you can import submodules of modules directly, and overall the __init__.py in the module shouldn't import all the submodules by default. Structure your modules so they don't do massive initialization routines and problem solved.
Furthermore, because of pythons dynamic nature, you can do run time imports, including imports in functions. In use, whether you import something up at the top and it gets lazily loaded or you import something right when you have to use it has absolutely no difference other than code syntax, and the latter is actually better because you can see what is going on rather than the lazy loading being hidden away in the interpreter.
Or if you really care, you can implement lazy work process inside the modules, so when you import them and use them the first time it works exactly like lazy imports.
To basically spend time building a new interpreter with lazy loading just to be able to have all your import statements up at the top just screams that those devs prefer ideology over practicality.
It would be great if you included any sort of evidence or argument.
Reading on to the other comments, it looks like you're throwing out a lot of accusations and claims. I don't know what you think you know, but from the looks of it, you don't really know HRT's business. I don't really these days, but I knew it years ago, and it's not from taking client money or arbitrage or some weird scam. It's not magic but the world of algo trading isn't a ponzi scheme.