Algorithm And Portfolio Stats

Hi there, and welcome to our first weekly review of our Day Trade Bot, and long term portfolio. Let’s start by going over the performance of the algorithm.

Day Trade Bot - Algorithm Stats

First, the hard numbers. The Day Trade bot does not give any recommended allocation sizes with its positions. So if a user wants to use it, that’s a decision they have to make themselves. Consequently, measuring its total return requires some assumptions on our part. The bot is watching 72 tickers this month, and is only allowed to enter 1 position per ticker at any given time. Therefore, assuming constant allocation in each position, the largest fraction of your capital you could put into each trade, while guaranteeing you’ll never need margin is (1/72). In this case, you’d be up roughly 4 bps this month. Alternatively, if you got whatever margin you needed to put 100% of your portfolio into every trade, you’d be up 2.82% this month. So depending on your capital allocation strategy, if you’re following the bot, you’re probably somewhere between those 2.

Note that this chart only includes trades that have been closed out (of the 768 trades we’ve made this month, 3 remain open at time of writing) and assumes 100% allocation into every trade.

For some quick other stats: of our 768 trades, 363 have been long and 405 have been short. In other words, the bot has roughly a 47% long rate this month. This also means we’re averaging about 43 trades per day.

Our trades have a 39.1% win rate, with the average win being a return of 0.74%. The average loss is 0.47%.

All in all, I’m not fully satisfied with the bot’s performance so far. Green is green, but it’s cutting it pretty close. Now that we’re in our second beta release (the first was a closed one, exclusive to HK staff), we have some out-of-period data we can use to confirm our findings from the development stage. The results of this check are both good and bad. First, the bad. My suspicions were correct - the model is overfit - but I had under-estimated how overfit. This is the reason we see such a deep and long draw-down this month, which would be fairly unlikely for a model with a Sharpe in the high 2’s like we forecasted.

The good news is that we’ve used this data to test some improvements to the model, and have pushed these through - they’ve been in production since Thursday night. These changes have led to improved performance in our older test data, and fairly large improvements in our out-of-period data. While we can’t guarantee that these will lead to significant improvements, they show a lot of promise. These changes are:

  • No position entry near market open. The bot is no longer allowed to open new positions until 30 minutes after open. Due to large movements after hours, a lot of our technical signals are inaccurate, or at least less meaningful, right after the market’s opened. This is something we first noticed anecdotally, but the statistics hold up when we chart out all of the bot’s trades this month.

    Note that the bot is still allowed to exit trades whenever it wants to - including at market open.

  • Easier to exit positions due to bad technicals. If the bot has opened a position, it’s allowed to exit even if the stock hasn’t hit its exit price, stop loss, or hit the maximum duration of that trade - if the technical signals have turned bad. We’ve reduced the requirements for the bot to make this move. In short, this will make it more likely to take profits and cut its losses early.

  • Moved all stop losses 50% closer. In most of our winning trades, the stock price never gets close to its stop loss. Based on this, we suspected that we could move stop losses closer (keeping target exit prices the same), and based on some backtests - we were right. This is going to lead to a greater percentage of trades being losers, but reducing the average loss enough that it should make up for that.

We’re going to continue this beta until the end of this week. If it’s positive - great! If not, we’ll give it a few more weeks. After all, we just made some changes.

Before moving onto the portfolio, let’s discuss a few highlighted trades - the best and worst of the month (so far).

The best trade we’ve seen so far came right after the beta started - at 2:35 PM EST. The bot went short on $APTV at $85.15. Over night, it gapped down, hitting our target exit price for a return of 5.14%

Our best long position was similar. We got in on $MTCH at $37.49, and exited at open the next day for a return of 4.17%.

Over a long period of time, I suspect that our top few trades will usually be the result of a strong gap after hours - it’s one of the easiest ways for unexpected volatility to hit our system. Let’s examine our best trade that didn’t go down like this.

On the 24th, we went short on $ELV at $476.86, before hitting our target exit price of $462.92, for a profit of 2.92%

Lastly, the worst trade we’ve seen so far is this long on $WBA. We ended up getting stopped out for a loss of 2.15%.


Long Term Portfolio - Stats


As mentioned, we will continue publishing stats on our proprietary portfolios. This week was a good one - our portfolio is up 1.52%, compared to SPY at 0.7%. We can see that our tech holdings did great things for us this week. Next time, we’ll go into a bit more depth on macro economic factors in addition to this.

That’s all I have for you tonight. Thank you for reading, and happy trading!

Previous
Previous

HaiKhuu Daily Report 01/29/2024

Next
Next

HaiKhuu Weekly Preview