Strategy 9 goes live, day trading ES, and platform overload
Strategy 9 went live on Monday. It's up 4% this week. I got in some good trades on ES this week, so I decided to brag about one. Hot take: All trading platforms suck.
Disclaimer: the following post is an organized representation of my research and project notes. It doesn’t represent any type of advice, financial or otherwise. Its purpose is to be informative and educational. Backtest results are based on historical data, not real-time data. There is no guarantee that these hypothetical results will continue in the future. Day trading is extremely risky, and I do not suggest running any of these strategies live.
This is a practice in controlled word vomit, folks. I am just talking about things that I either did or thought about this week while trading and researching.
Best trade of the week
I've been working on my day trading game recently and thought it would be cool to review any good trades (or good, bad trades) I made during the week. I only got to trade 3 days this week, so I don't have too many candidates for good trades, but I did take a nice ten point move in ES. As you can see from the screenshot below, I don't use too much in the way of indicators and my technical analysis is very simple.
Most of the day (Friday), all I did was watch. This moved here came near lunchtime and was an easy setup. The day had been trending up since early morning, so I was looking for a pullback into an area of interest. In this case, just a recent low. I only use the RSI indicator you see below as extra confirmation and the ATR is just there so I know how to place my first target if I am trading multiple contracts. The blue represents the high of day.
That's it. Just two lines.
It's been a decent week for me, despite only trading 3 days. Or maybe it's been a good week because I only traded 3 days? Either way, it doesn't matter. Just gotta keep refining the process.
Strategy 9
While working on setting up my trading environments and getting ready to start forward testing some of the HGT strategies, I went ahead and got Strategy 9 running in a small account I have. If you don't recall what Strategy 9 is, check out the link below:
Strategy 9 is a rotational Nasdaq 100 strategy that we created back in September. We tested the strategy from 2007 up to 07/12/2024. It had a CAGR of 22%, Max Drawdown of -20%, a 62% win rate, and a profit factor of 2 and Sharpe of 1.21.
If we run the backtest up to December (giving up almost six months of true OOS data), we get these results:
As you can see, it had a drawdown after the summer and has since then been slowly grinding it's way out. It looks like it was probably just a hair away from triggering the drawdown filter. Regardless, I decided to start trading this strategy live to see how it does. It rebalances every Friday, so I figured I could keep a rolling update of it's performance here.
This strategy took it's first positions on Monday (01/13/2025). We close this week out at X%...
I took the positions on Monday well after open, which is not how it is supposed to be done. The orders are meant to be placed on open. I will make sure that happens going forward.
Here are the trades that I took Monday:
And here is the performance from this week:
Not bad, for the first week. Hopefully I can create a better way to track this strategy, so I don't have to take screenshots of IBKR's desktop application...
Important Note: I am not going to be providing any “signals”. The update for 9 is going to come on a weekly basis AFTER the trade week. What you see are orders generated for this week. New orders are generated after close on Friday. If you want to see what it generates each week, you will need to get the strategy and do it at your own risk.
Platform overload
Remember when I said, "all trading platforms suck"? I was only kidding a little bit. Like, a tiny little bit. A negligible amount, really. It seems like a big sweeping generalization, but I think it's one of the more accurate ones. Want to know why I feel this way? Sure you do.
Time to vent a little (cracks knuckles, positions keyboard).
Why doesn't IBKR offer direct API access (to non-institutional customers)? Why does IBGateway and TWS take so much fucking memory (between 750MB to 1.5G in my experience) to run in the background doing nothing? It's almost like they really just want you running their software on your desktop as often as possible. Why?
Why do good data providers (Norgate, CSI) require you use their software to download the data? This goes back to APIs. I just want to access the data when I need to and then I can store and backup local copies on my own without having to worry about yet another program running in the background all day long.
Why do other traders seem to focus on the shit that doesn't matter? I know that IBKR has super cheap data. But you get what you pay for. Also, streaming data is the one part of a platform that requires the most work to make sure it works well. When I was trading equities, I used a program called DAS Trader Pro to connect to my IBKR account. This was the smoothest shit ever. I literally only used it for direct access order routing (look it up) and high-speed, efficient streaming data. Both of these where offerings from the platform. The only thing it did with IBKR was connect to my account to place orders. And it did it WITHOUT the TWS or IBGateway software. I wonder how they managed to do that...
Why are people happy with Python performance? Do you know how long it would take to backtest a strategy across all SP500 constituents for the last 20 years? It might only take an hour to create the backtesting engine, but it will also take the better part of the hour to pre-calculate all your extra values and loop through the history to perform the test. No thanks. I would rather take the 10 years to learn C++... <-- Jokes.
Ok, I'm done. Moving on.
My Current Platform list (absolutely subject to change, and hopefully soon)
I have been doing a lot of messing around with different platforms this week. I can't begin to explain how much it annoys me that there isn't a single platform that does everything I need it to do. Right now, the platforms I am having to deal with are:
Interactive Brokers (IBKR) TWS or IBGateway
There is no good option here. Both of these products kind of suck a lot of ass. They use excessive resources just to run in the background and IBKR doesn't offer direct API access unless you are institutional customer.
Rithmic Trader Pro
This is used for trading futures prop firm accounts. There is no getting around it. Oddly, I don't have any issues with this software. It's simple and I only use it to monitor trades and orders when I'm day trading.
Sierra Chart
This is the software I chart and day trade from. Really, I don't have anything bad to say about it. It's a bit harder to get the hang of in the beginning, but it does everything you need it to do for an all-in-one platform. If I had to keep only one platform, this would be it.
RealTest
This is for researching and backtesting EOD strategies. When it finally gets intraday capability, I will use it for that too. I don't think there is anything better that handles multiple strategies and multiple instrument universes better. This one stays.
OrderClerk
This software comes with RealTest and creates a bridge between RealTest and IBKR. It places orders to IBKR via CSV and tracks trades from IBKR to feed accurate trade lists back to RealTest so it generates accurate order sizes for any strategy that you are trading live. It's pretty dope, but it still requires the localhost gateway API's through IBKR's TWS or IBGateway, the latter of which is mother fucker to work with for this purpose due to trade history request limitations.
Norgate Data
This is for good EOD data. For now, this is what I use. I don't like having to use their software to get their data, but the software is pretty simple and does everything you need it to do without consuming too many system resources. Still, I would like direct API access.
TradeStation
Shocking, I know. I just recently opened up a tiny account with TradeStation so I could learn how to make strategies and indicators in EasyLanguage (EL). I don't imagine that I will be doing any trading or running any automations through this platform for myself. I have it mostly for any prospective clients or subscribers who want something in EL.
That's a lot of different platforms just to research and day trade, right? And not a single one does everything I would like to see in a single platform. Sierra Chart comes hella close, but it lacks good connections for trading stocks. It connects to IBKR, but like every third-party connection to IBKR, this is only a half-assed solution that requires use of their software as a middleman to connect to their API.
As you can tell, I am quite frustrated with IBKR's lack of a modern API. I am stuck with them for now, since I am using them to test out Strategy 9. I plan on rectifying this situation by creating my own tool to submit CSV orders to IBKR. They have a small client portal option that can be used with docker to get access to the API without all the resource hogging (and God only knows what else). This solution will probably work until IBKR opens the API up to regular clients. Or maybe I will just switch to something like Alpaca, who knows.
Since I am currently day trading in a prop firm account (evaluation, I am testing if my day trading methodology lines up with their consistency rules), I can't avoid using Rithmic. Sierra Chart lets you run multiple instances of itself (so does RealTest), so it's fairly simple to just dedicate one install to the Rithmic data feed and leave it alone. For futures trading, this setup is just about perfect.
Actions to take
First, keep trading well.
Second, slim up this platform overload. I'm thinking I'll drop the IBKR software and OrderClerk and replace this with my own command line tool for submitting orders to IBKR (looking at Go for this). I will still have to use a gateway, but they have a tiny little java program that I can use in a docker image for this. It's better, but still not the perfect setup. For now, everything else will have to stay.
I want to drop Norgate by the time my renewal comes up in about 5 months, but I will need to really figure out how to handle certain things in RealTest, like historical constituency checks... ok, that might actually be all I have to solve. Then, I need to test backtest performance for the different data sources. I know data matters, but my hypothesis is that I don't see that much of a difference. We shall see.
TradeStation stays because it's just there for prospective clients (hit me up if you want something developed privately) and to learn EasyLanguage.
Sierra Chart is my favorite trading platform for active day trading right now. So, it ain't going anywhere. Rithmic is required for prop accounts, so I am stuck with it for the time being.
These actions would really just leave me with Sierra Chart, Rithmic, and RealTest (since TradeStation is just kind of there). That's way better than all the shit I currently have plaguing my machine. I know that these are first-world problems, but they are problem that irk me to no end. So, I just need to create my own solutions.
Learning C/C++
If you don't know, RealTest and Sierra Chart are both programs that are written in highly efficient C code. If you want to make any custom functions for either of them (bet you didn't know that you could do that with RealTest), it is a good idea to understand C. Which I don't, really. So, I am going to learn.
In order to learn this, I am hoping to create some research tools in C. They will probably be open source, but they will be oriented towards the developer/researcher. I do not intend to abstract anything away for the "user". I think this is the issue I am having with all of the proprietary platforms. It's about making it "easy" for the user. In order to make things easier for the user, certain things get sacrificed. Simple scripting languages are cool, but I would rather be able to use the full power of a programming language. I'm sure I fall into a very small group of users, but that's fine. The goal is to build something that can be built upon to suite whatever needs the researcher/trader has.
Conclusion
That's it for this week’s updates. Next week I am going to start breaking down a stupid complicated indicator and how I am using it in RealTest. Then, we will explore whether or not it is actually useful for trading by backtesting it's signals with some new strategies. Get ready for some silliness, because this indicator is a little complicated and it will require that I make some parts in C and leave some parts as scripts inside RealTest. I will not create this indicator in Python, because it would just take too long for it make its calculations across large universes.
Happy hunting.
Feel free to comment below or e-mail me if you need help with anything, wish to criticize, or have thoughts on improvements. You can also DM me or start a chat thread. Red Team members can access this code and more at the private HGT GitHub repo. As always, this newsletter represents refined versions of my research notes. That means these notes are plastic. There could be mistakes or better ways to accomplish what I am trying to do. Nothing is perfect, and I always look for ways to improve my techniques.
There’s more diff how traded this and your backtest, eg the position sizing.