Weekly Algorithm Review: 07/22/2023 to 07/28/2023
Performance Rankings
Sector Neutral: +0.08%
Market Neutral: -0.06%
Variable Market Neutral: -0.38%
Overall Market: -0.46%
Variable Sector Neutral: -0.48%
Base Algo: -0.49%
Long Term Portfolio: -0.72%
Our first week with the updated algorithm is technically a win, albeit a very small one. The algorithm outperformed the long term portfolio by 23 bps. Though with the portfolio lagging behind, we were only able to about match the market’s performance this week.
I’m not unhappy with the algorithm’s performance this week - a win is a win - but it’s not enough to assure me it’s working as intended. If we see wins of this magnitude for the next few weeks, I’ll be satisfied.
Interestingly, we only had 1 losing day this week - Wednesday (the algorithm under-performed the portfolio by 0.01% on Friday, but I’m counting a difference that small as a tie). With a BAOSAC system, it’s difficult to draw any meaningful trends from a single day of data, but let’s take a look.
The obvious macro offender here is the Healthcare sector. But since Healthcare outperformed both the overall market and the long term portfolio on Wednesday, we can’t attribute the loss to an issue of macro trends that day. Most of the algorithm’s losses can be attributed to healthcare stocks, but the healthcare sector did well; most of the losing stocks it chose happened to be in healthcare. The loss must be attributed to individual stock picks.
The problem wasn’t strictly that the algorithm picked losers on Wednesday, rather that it missed or under-allocated most of the bigger winners. Take TFX: while the algorithm allocated more than the portfolio (2.18% vs 1%), it was still one of the algorithm’s smaller plays that day. Because of this, the algorithm made less from it than MPC or PGR - despite TFX outperforming both by a substantial margin.
It doesn’t seem like there’s any 1 cause for the under performance we saw on Wednesday. Some days the model will simply have a weaker performance than others.
All in all, I’m happy with this week’s performance with the algorithm. It hasn’t made substantial changes to the portfolio’s sector allocations. Based on that, a close performance is to be expected. The outperformance is small, but we take those wins. If the algorithm continues to perform at this level, I’ll be very happy with it.
What’s In The Pipeline?
As was the case last week, there are no major user-facing projects in the works at this time. My main focus remains on researching intraday signals, with the goal of running a proprietary account. At the same time, I’m hoping to find a signal that significantly outperforms our current intraday trade alert bot, but is still suitable for use on the server.
In order to be suitable for use on the server, an intraday trading model must abide by certain rules. These are regularly being discussed, but some of the current ones we have are:
It can’t be focused on scalp trades. The occasional scalp is fine, if the bot sees a trade it likes, but then quickly get a signal in the opposite direction, but we want to keep these to a minimum (our current standard is that at most 10% of trades alerted should have a duration of 5 minutes or less). The main reason for this is that users aren’t going to watch the bot all day, and follow its alerts blindly and immediately.
Let’s say we have a trade that the bot loves, but is only good for 5 minutes. If a user sees that alert 90 seconds after it’s posted, and spends 2 minutes checking if they like it, and putting the trade in: they’ve already missed pretty much the whole thing.Recommended trades can’t be exceedingly complicated. Ideally, every trade would be a long position on 1 product. We’ve discussed whether or not to allow short trades, and determined that we don’t want these on a user-facing bot. This means that any more complex strategies, like pairs trading, are immediately disqualified.
We need to have some control over how many trades are recommended each day. If users are asked, and say that the bot recommends too many trades, or not enough, we need to be able to act on that information. If an intraday model is to be utilized here, there has to be a parameter we can change to adjust the expected notifications per day, without significant negative impact on performance.
It is preferable (though not necessarily a hard requirement) that recommended trades include a stop loss, as well as a target exit price.
None of these rules are in place for our own proprietary account, and as such, we are researching models that violate one or more of these rules. If we’re running an automated trading bot on our own account, it isn’t a problem if most of its trades are scalps, or exceedingly complex. But we also want an intraday system that’s suitable to show users. When the intraday bot update eventually comes, it will be the strongest model we find that closely follows these rules.
Additionally, I am looking into reworks on the news bot. You might have seen the news that, statistically, GPT’s performance has gotten worse in recent months. I think this is the reason the news bot has let significantly more fluff pieces through than when it started. I’m looking to remedy this over the next few days.
Misc. Data For The Week