Would you build your automated trading system just like this including a machine learning idea?
Good post!Was just trying to write a response post (for your readers as you know all this stuff) at http://quantlabs.net/blog/2014/12/final-architecture-walthru-of-automated-trading-linux-windows-based-system-with-hft-potential-hail-python/ but the CAPTCHA code kept failing.Here is post if you find it relevant and helpful to readers.
Hi Bryan,I’m sure you know ALL this, but figured I’d share some tips with your readers.In regards to HIgh freq trading system (or any automated system) here are a few things I’d recommend (from personal experience and years of trial and error).1. Use MongoDB for your database. Run it on a SSD with at least 32gigs of ram (if you’re collecting on every tick) use capped collections and (of course) create compound indexes for common queries.
I am finding Redis is my solution as I have heard various reports you can hit performance walls at higher data levels with reading througput.
2. Don’t run the system on your own machine at home (duh). Get a colo or dedicated next to your clearing. (Mine is direct fiber to CQG in Chicago)
3. Focus less on the language you use to write your systems. Python is brilliant, but I personally like c++(for speed) but mostly C# – and it’s all the same crap anyway. C#, f# c++(this has speed advantages as you can be sans .Net framework), python are all fine, especially if you’re using 3rd party software. No way to control that bottleneck no matter what language you use. There are c# drivers for all the programs one would use. Matlab,R,I use http://www.extremeoptimization.com/ for my stat/prob models – mostly to build my predictive ARIMA models – I’ve chosen this over matlab and R soley as personal preference. My Arima model takes 1000 data points(based on a custom MA) and predicts 20 points out (in realtime of course). And is near flawless. I’ve found an anomaly that occurs when a big move is about to take place. I can’t explain what it is, as that’s my ‘holy grail’ so to speak and I don’t fully understand why it happens.
I will be addressing these needs in future videos with the language but in short I will focust on Matlab/Simulink/C/Redis for the back end number cruncher.
4. For machine learning go with Encog. I use is solely to predict whether the next swing will be a HH,LH,LL ect…it’s 95% accurate. But it’s a Bayesian FeedFoward Classification ML. It took a lot of trial and error with different neural and ML systems/setups to come up with this. – and for the record, price or indicator prediction (using regression models) is near impossible. With my skillset it obviously is.5. Again, FOCUS on the logic not so much the hard/software you use to write it. There are a million diff hard/soft configs that will do the same thing. As long as your logic can execute and place orders in miliseconds(or sub). For most HFT systems this can be accomplished with 1. Excellent coding practices (use lightweight objects and understand how to thourouly optimise your code, data store, and queries) 2. Run everything on a SSD with at least 32gigs of ram. (I use 128) but makes little difference. 3. Sound logic. Entries should be the least of your coding concers. Trade managment, risk management and position sizing(this goes with entries) should be your main focus. 20%entry signal / position sizing 40%trademanagemet/exits 40%risk managemnt.My 2cents.Cheers,Mike
I have older Matlab scripts that address all of the above model types you apeak of. The SSD will address but I will make the same video regarding I mentioned in #2
I like the path you are on!! I’m digging your setup!!!
Big thanksFACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!