Why doesn't every hacker do this to make extra money? Is it within the grasp of anybody who can program to automate trading like this?
EDIT: Sounds like it's not really for everybody. You have to own or rent a server with access to direct lines to the exchanges, or else your lag will be such that profiting from HFT is impossible. How much do these cost?
I tried at one point to do it with Ninjatrader. The programming skills for the trading software is not complicated. What is complicated is tweaking it so it will make money, there are tons of indicators out there and many people have tried this with neural networks and the like. A lot of effort is put into it. I personally thought there were smarter people than me who barely had an edge. I honestly didn't think it was within the grasp of a single programmer nowadays, but this author has proved me wrong. He of course has much more sophisticated algorithms than what I was attempting.
> You have to own or rent a server with access to direct lines to the exchanges, or else your lag will be such that profiting from HFT is impossible.
A profitable predictor is a much, much harder problem.
At a place like Goldman Sachs, a quant with a working predictor gets paid 5 times as much as the IT guy who makes that predictor talk to the market quickly enough.
Because, as your question implies, it is (relatively) easy to do the IT work or hire someone to do it. Not so for the predictors.
At a place like Goldman Sachs, you don't need quants or predictors. You call up the CEO of a company you want to post record profits, and you tell them if they don't do absolutely desperate, self-destructive things (screwing employees and customers for immediate gains), you will crash their stock and destroy their entire company. That CEO then has a choice. Be the one who killed the company, or be the one who kept it running for a few more weeks and delivered a record quarter that made Goldman Sachs happy.
Once you have the assets and capacity to actively manipulate the price of any stock at will, the market is a VERY different animal and no longer need to be understood at all. You simply force its hand.
>Why doesn't every hacker do this to make extra money?
I wondered the same thing and tried to answer it for myself not that long ago.
In short, it's hard, time-consuming, stressful and costly.
1) Your code has to work going forward. Coming up with something that works in backtesting is easy, doing it moving forward while staying within your risk envelope and considering all the associated costs is hard.
2) Closely related to #1. Whatever you put together is surely going to need plenty adaptation and oversight. It's a very fluid problem, you're just one player among countless others. How much time do you have in the day? Where is your capital coming from? For most people, the source of capital is a job that they probably can't ignore while fiddling with a trading program that would have to be remarkably successful to replace that income.
3) Everything costs money. You need a certain amount of capital to start with and there are all sorts of running costs. From the basic costs of execution, to market data and eventually co-location if you get that far. The fact that the OP kicked off with an amount that's essentially the barest minimum for any kind active trading is exceptional.
4) Can you maintain discipline and continue executing on all of the above while losing money? How many people struggle to simply get up on time, control their desire to check a particular website or to get over and move on from some frustration? Even if there's automation involved, trading will test your mental fortitude.
"Why doesn't every hacker do this to make extra money? Is it within the grasp of anybody who can program to automate trading like this?"
I have flirted with HFT in a hobby-like manner and it isn't the programming that will get you the money, it is the domain specific knowledge coupled with the programming. On top of that, there are quite a few risks and potential to lose a lot of money.
2.)Finding a good predictor. Predicting up or down is easy on paper. Finding a predictor that a.)beats the spread, b.)factors in lag time to execution, and c.)factors in commission, is hard.
3.)Market regime changes. What works a few months ago isn't guaranteed to work now.
Because it's gambling. Some are better gamblers than others, but no individual can consistently have more ups than downs over a period of years.
"I was making a lot of money but now I've stopped" is the same thing as "I was lucky until I wasn't". Making a living by gambling pretty much sucks, which is why most hackers don't do it.
(You'd think that something as complex as markets would attract hackers trying to "figure it out". The problem is that due to the changing nature of the other participants, all hacks are temporary. Makes for great blog posts, but not a long term strategy.)
You are correct that no individual can. But firms can. And some do. Its not gambling. Its not heading down to the roulette wheel. If someone puts on millions of trades and wins a statistically significant portion of them you would have to say its not gambling. Its trading with a statistical edge.
To really be able to do this with a lot of success, you need to be able to do intraday trades, which would make you a day trader under SEC rules, which also requires $25,000 in your brokerage account.
You have to have the capital for the server and access to the data feeds, as well as time to burn. Also, you need to find finance interesting enough to spend time with it.
Wouldn't the term "Statistical Arbitrage" be a more apt description of what you were doing?
If you are relying on a broker-supplied pricefeed over the internet you are far outside the real of what is traditionally understood as "High Frequency Trading".
It wasn't anything over the internet. I had a server rented at my broker who were situated close to the exchanges in Chicago and had direct lines. For sure I was not the fastest but only behind by a couple milliseconds perhaps.
Yes, however, I forgot to mention that pretty early on I converted my program to use an API from https://www.tradingtechnologies.com. It's odd, but I can't remember exactly why. I think it was simply because I found a broker who could offer me a lower commission rate and they only supported TT. With regard to posting code yes I may do that. We'll see.
I'm pretty sure it was XTAPI. Is that the simpler one? I used the simpler one. Whatever the case.. the code that dealt with the API was trivial compared to the rest of my program. So good work!
If I was correct in guessing that he used XTAPI (via X_TRADER Pro), IIRC that costs around $1k/mo depending on who you go through for the front end license. I was only a developer so I'm not sure what licensing costs are for gateways, but those are the servers you connect to in order to place orders on the exchanges. He was trading the Russel on ICE, and DAX on Xetra (maybe Eurex?), so he would have needed two gateways.
If he posts the code, you're a long way from running it.
1) Being connected to friends who taught me a scalping style of day trading
2) Being really good at designing algorithms.
3) I only wish I could have started automated trading back in 2001
How do (did) you cope with increased stress level? Trading futures, especially in a an automated way, can easily drain your margin unless the algorithm is really well tested for edge cases.
My automated program was much less stressful than trading manually. The best was going to Hawaii, waking up, and having the entire day done. I was making like 6k every day on that vacation. The best!! :)