"I make mistakes. I'll be the second to admit it." - Jean Kerr
I've got an early June update for how trading has gone so far, and the rest of the post is about trading mistakes I've made recently. Let's start with how the strategies did in the month of May. Then we'll get to the pain.
Results:
Volatility Reversion (SVIX/VIXY) Results:
- The strategy was largely successful, with roughly a 23% return, entirely invested in SVIX or sidelined in cash. The trades were as follows:
Volatility Reversion worked great for the month, with all 3 trades being profitable. No complaints, no fill issues, nothing. That said, I'm currently looking to optimize and increase. Not the current trade strategy itself, but when VIX1D (at close of the day) is between 10-15 and I’m suddenly in cash. Roughly 53% of historical trading days of this strategy are in cash, and I'd like to use that cash more productively.
Emerging Markets (EEM/TLT) Results:
- The strategy was... not successful for the back half of May, with roughly a -3% return trading EEM and TLT as a net-zero sized long/short pair. The trades were as follows:
It felt like the EEM/TLT long/short strategy lost money every day I was invested and checked at market close. Which was painful to watch. Quant or not, I’m a little superstitious with my trading, and I like a strategy a lot more when the first few trades are profitable, as opposed to losses right out the gate. At least my results correlated with the backtest's forward results when I reran it for the month of May.
I held off on writing this update a few days to see what the actual cash charges for shorting were from my broker their monthly statement for May, but it's hard to tell what's what. I'm assuming I paid an additional $3000 / 12 / 0.5 x 13%, or roughly $16.50 for the privilege of shorting TLT and EEM since 5/19/2025. So the true ytd loss for the strategy is -$107.85.
In moments of weakness like this, I consider improvements to the strategy. I wondered if it was possible to flip the positions if we’re losing money 5-10 trading days in a row so we can instead make money. So I created a simple "voting" system backtest, which switched the L/S TLT and EEM positions from the suggested ones when the last 1, 2, strategy trading days were unprofitable, or the majority of the last 3 or 5 trading days were unprofitable. Unfortunately most of these voting strategies either matched our SPY benchmark, or lost money, meaning they also underperformed the various EEM strategies I’d outlined. So for the time being I'm going to have to sit tight and hope my strategy does better in the long run.
Mistakes
I don't want to overload everyone by detailing more than 2 different strategies that I’m running in a month, so I'll do a fun overview of terrible errors I've made in trading and backtesting that cost me a lot of money and time.
Data Leakage
One of the most embarrassing screw-ups I did recently was in futures. I thought I was a genius for a little while, okay? Absolutely brilliant, with a simple system no one else figured out that would make me infinite money. I had noticed in Futures and ETF data that there was something of a lead-lag effect. If the return for GLD was less/greater than /GC, then the next day /GC would go up/down. This result was similar in combos like /ZB and TLT, as well as /NG and UNG.
Look at the backtest for this idea. Look at it. I was giddy and I needed a log scale to not make the /GC long/short futures gains look too vertical. I thought I'd cracked it all. The Sharpe and Sortino Ratios were over 2.5, assuming you had traded /GC contracts like a stock with the account fully covering the contract’s value, and not a leveraged future. The fact that I’d be using Gold Futures to trade and only needed 3%-5% margin to open a position was mouth-watering.
What I didn't realize was that the "close of day price" for Futures and ETFs can be determined at different times of the day. The recorded “Close price” for futures are calculated from a volume-weighted average price around 2pm-3pm EST so they can’t be manipulated last-second. This means the GLD ETF has roughly 1 hour more information than /GC did each day. Once I got time-accurate prices from another provider, I saw my edge didn't actually exist, and my week was ruined. Thankfully I realized the error before I traded the strategy and blew up an account. This problem is often called "Leakage", where our models are using data that isn't yet available at the time a decision is made.
Bid/Ask Spread and Contract Volume Issues
In one of my previous posts on this blog, I showed how trading VIX call spreads could be lucrative if you find a sweet spot of the ratios of VIX/VVIX, and VIX/VIX3M indices. You could find a $12+ Expected Value per trade on VIX call spreads, which stacked up considering the small amount of capital required for weekly VIX option spreads. However, I didn't take into account that the bid/ask spreads for these trades is massive, and it's hard to open and close these trades within a few minutes like you can for a SPY or SPX option. What should have been a really 1-2 good months were instead stressful maybe-break-even trades if you squinted at them before I gave up. Sometimes, a $12 expected value per trade exists because the spread for the strategy is going to cost you $30, exercising when in-the-money will cost $20 a pop, and the option contract volume is only large when VIX is at 30+.
Not Closing Out a 0DTE
This is an insanely dangerous and costly mistake I made and hopefully I'll never be misfortunate enough to do it again. I recently held a 0DTE iron condor for the IWM ETF, risking a couple hundred dollars to make like... $50 if it expired out of the money. The expected value for the trade made sense, and I thought I knew what I was doing. But in the last few minutes of trading, I had either forgotten to close the trade out, or I just thought, "Eh, it won't explode post-market, so I'll be fine".
I was not fine. See, popular ETF options actually expire about 15 minutes after the close of trading, not at 4pm Eastern like single stock options and some index options. IWM ended the regular hours trading that day at 4pm within the 100% profit point, so I thought I was safe. Except... It jumped early in post-market a few minutes later, and I got assigned, becoming the proud owner of 300 short shares of IWM at an immediate 2% loss. What was a $50 gain turned into a $800+ loss in one day that I had to scramble to close the next morning. If it had been a larger Iron Condor position, I fear the 500-1000 IWM short shares could have been forcibly liquidated overnight at even worse prices immediately by the broker. Or other positions could have been liquidated too to balance things out.
Moral of the story? Even if it's at a loss or a bad price, I should close out ETF options before they expire. And keep option positions that can be exercised small.
Shorting is Never a Given:
Hot on the heels of me declaring that I'm doing a strategy that requires a constant short position of EEM or TLT, with quick switches from long to short and short to long in the last few minutes of the trading day, I'd like to bring up an interesting trade I had found a while ago, and why it’s currently collecting dust in a pile of ideas I ignore.
I'm not an expert on the German economy, or the companies in their stock market. My hand-wavy understanding of Germany’s public markets is that they have specialized industrial companies that make incredibly complicated tools for other businesses to use. Like a part for a train brake that no one else can do at their level of sophistication and precision. It’s not sexy like AI, but it kinda sounds cool when you read about it in a coffee-table-book-about-trains way. They also made silly car commercials a while ago with Peter Stormare, and I don’t think that’s priced in.
(VW if you’re listening, please bring him back. I know he’s not German but it just works.)
There are several Germany equity ETFs traded here in the USA that can give you exposure to public German companies (AX, EWG, FGM, FLGR, and GF, for example). One day I was monkeying around with them when I noticed that EWG and DAX have a similar lead-lag relationship that I'd initially been so hyped about with Gold ETFs and Futures. Except this time DAX and EWG have the same trading hours and closing price times, so there’s much less data leakage.
The rules for this anomaly were as follows:
If at the end of day, DAX's 1-day return Close to Close was < EWG's 1-day return Close to Close, Long DAX until the end of the next trading day.
If at the end of day, DAX's 1-day return Close to Close was > EWG's 1-day return Close to Close, Short DAX until the end of the next trading day.
If you're feeling fancy, you can make this a long/short strategy by complimenting the long/shortDAX position with a short/long EWG or SPY position. Like I just did with EEM/TLT.
(I also found that the hypothetical returns improved with fewer days traded if we kept our classic "don't invest when the VIX > the VIX3M" rule. But that's not important here.)
Within minutes I saw I had something special. The long-only DAX, long/short DAX, and long/short DAX+EWG results looked great.
The strategies had made money every calendar year since 2015, had incredible Sharpe and Sortino ratios, low drawdowns, it was a giant up-and-to-the-right chart that makes you dream about the big boat you're going to buy with your stacks of money. I'm talking 5+ Sharpe for long/short DAX/EWG, 1.5+ Sharpe for long-only DAX position that was invested roughly half of trading days. Each strategy was making a 30%-50% annualized return. Pretty great for ETFs you only check and adjust once a day, right?
Do I know why this phenomenon exists between EWG and DAX? As usual, no. The funds are made by different issuers (iShares and MSCI), and I don’t have access to a full history of their holdings. It could be because DAX says it contains the largest German companies by capitalization, and EWG says it contains large and mid-cap Germany companies. So there's a possible Fama-French Factor firm size issue (called "small minus big", or SMB) driving these returns? But the holdings breakdown and top holdings I got from finviz.com show these ETFs are pretty similar.
I was set to go, ready to make this a 10% position and print money for years. Then reality hit and I found problems with my strategy in the first few weeks of live trading.
1. A few times the DAX and EWG returns were so close at the end of the day that the strategy could have been long or short DAX depending on when you checked in the last 1-5 minutes before close. When you're also trading end-of-day strategies like EEM/TLT, and Volatility Reversion it can be a little overwhelming to keep track of buying and selling.
2. Actually shorting DAX shares was hard, if not impossible. At a certain point in the “find shares to short” difficulty spectrum between SPY and a $5M market cap OTC stock, my online broker pushes a pop-up window insisting that I personally call their trading desks over the phone and ask them to locate the shares for me. Getting a small share position at a good price over the phone wasn't something I could reliably accomplish in the last 5 minutes of a trading day. The trading desks also probably want to spend their time trying to move 10K+ shares per caller per day, not 100 shares like what I wanted.
3. It's really hard to snag 100 shares quickly at a good price in the last few minutes when the daily volume is only 2K-4K shares. Even with volume following a U-shaped curve where most shares are traded in the first and last few minutes of the day, trying to secure 5%+ of all daily volume within a minute is not guaranteed.
4. And of course the bid/ask spread would be an issue with such low volume, although it was eclipsed by issues #2 and #3 above preventing me from getting shares in the first place.
So after a few unbalanced or missed trades, I gave up on my DAX long/short trading strategy last year and forgot about it until this just this week when I was digging up painful memories for content.
It appears the DAX/EWG volume situation improved in my absence. After March 5th 2025, for whatever reason DAX's average daily volume exploded from ~4K shares per day to ~200K shares per day. EWG's average daily volume also similarly jumped into the millions. I'm not sure if the hypothetical EWG/DAX relationship will hold over the next 5-10+ years too, but actually trading shares at end of day should be easier.
Lessons learned? I should not only check to see if my broker and the market will let me trade necessary assets, but I should also revisit previously discarded ideas every few months to see if the situation has changed.
Code detailing my screwups (/GC+GLD and DAX+EWG) is listed here.
-Lay Quant
Also, on the DAX/EWG. I don't believe you can actually trade that profitably.
The median bid/ask on DAX is 0.23% https://www.globalxetfs.com/funds/dax, EWG has 0.02% https://www.ishares.com/us/products/239650/ishares-msci-germany-etf .
The overall strategy can only tolerate 0.02% slippage (and 0.0005 commissions) while being profitable. So I'm not sure you'll be able to execute this.
Great post!
I find the extra rigor and effort to automate everything helps to remove any loss aversion like you mention. I sometimes do intervene, but the automated system will always close out at the end.