19 Comments
User's avatar
Sir benson's avatar

I’m not able to produce these returns after associating cost (10bps) per basis. It completely destroy lies the returns.

Expand full comment
Quantitativo's avatar

You are correct. The strategy doesn’t survive to 10 bps/week of trading costs. Last week, while working on the forward test, I found a bug on the backtest. The strategy still works, Sharpe ratio is similar, but it is much less resilient to costs. I already shared the new code & numbers with the private community… this weekend I will find some time to post the correction here as well :)

Expand full comment
Rick Sullivan 🦆's avatar

A 1.45 Sharpe and 19% returns on a basis reversal will always make for great reading, but let’s keep it honest: by the time an edge hits Quantitativo or Substack, it’s already being gnawed on by every quant desk from Chicago to Singapore.

Pietro nailed it in the comments: if your backtest relies on settlement prices, not what you can actually fill in the real market, you’re living in a spreadsheet fantasy.

The theory is sharp, but live trading means slippage, roll costs, and a crowd of faster, bigger players all chasing the same ghost. Test small, measure what you really get (not what the backtest promises) and remember, the best edges never see the light of day.

Expand full comment
Quantitativo's avatar

Great points. Theoretical Sharpe is one thing, what you can actually capture in the live market is another. The settlement price issue is real, and as I mentioned in my reply to Pietro, we discussed this in today’s study group and came up with a couple of creative execution approaches to mitigate it. Now we need to test them and see how they perform in the real world.

Also worth noting: not every edge scales to large players. Some of these basis reversals, especially in less liquid contracts, may be perfectly tradable for small or mid-sized books but impossible to size for big desks without killing the alpha. That’s why it can still make sense for smaller players to explore them, with eyes wide open about the limitations.

The authors of the paper address that point when they explain why this anomaly has not been arbitraged away.

(PS: There is no roll cost. As explained in the paper and in the write-up, this strategy never trades contracts with less than 30 days to expiration, and the positions are always re-checked on a weekly basis :))

Expand full comment
Alexander Fernandez's avatar

Love how you tied this back to Paracelsus—such a powerful reminder that ideas only matter if they work in the real world. This study is super interesting—love how clearly you broke down the short-term basis reversal logic.

Expand full comment
Quant Returns's avatar

This article was really interesting. I like this strategy and tried replicating it. I got similar results to the 1,300% described in your article. My other stats were similar too. When looking at my results further, I noticed that at the point I switch to using the next pair of contracts (due to < 30 days on current contracts), the spread for t was being calculated using both closing prices for previous and current contracts (so this introduced a gap between closing prices. Did you also come across this? Once I adjusted, so that after selecting new contracts the spread is calculated from t and t-1 of the new contracts, the returns were much lower. Experience anything like this?

Expand full comment
Quantitativo's avatar

Yes… as I mentioned in other reply, there was a bug here. I corrected on the version with the code I shared inside the community and in the study group. The results can be achieved though with leverage and depending on the correct selection of commodities. As soon as I find some time I will update the public post here as well

Expand full comment
Pietro's avatar

One of the problems with Norgate futures (but also with many other data providers) is that the published close price is not the last price hit by the market, but the settlement price. The settlement price is therefore not a truly tradable price and can differ even by a few percentage points compared to the last price.

You will tell me that every trades lasts at least a month so this difference should not have much impact on the performance of the trading system.

However, you will recognize that it is an element of great uncertainty.

Expand full comment
Quantitativo's avatar

Great point! You’re absolutely right that settlement prices aren’t truly tradable, and this does introduce some uncertainty. We discussed this exact issue in today’s study group and brainstormed a couple of smart execution approaches to work around it. Now the next step is to test them and see how they perform in practice.

Expand full comment
Pietro's avatar

the only effective solution to dispel uncertainty is to buy the intraday historical series of the futures involved in the analysis and then replace the last price with the close (settlement).

What do you think?

Expand full comment
Quantitativo's avatar

I think intraday futures data is too expensive, especially if we consider many markets and many decades (like in this strategy). I also believe this backtest is good enough to move this strategy to forward-testing phase. No backtest is perfect… all backtests are wrong. In my view, they are just rough approximations to help us decide if we should continue investing time in developing a strategy. For me, this strategy passed the criteria: instead of spending time and money to refine this backtest, I believe it is more productive in this case to start forward-testing and comparing the live results with the theoretical results

Expand full comment
ben's avatar

are you factoring rolling requirements or just holding contracts to actual expiration?

Expand full comment
Quantitativo's avatar

The positions are reviewed every week. The contracts are usually held for only one week. Even if eventually they’re held for longer, the weekly position checks ensure we are always holding the correct contracts for each spread traded. Also, as stated in the paper and in the write-up, the strategy never holds contracts with less than 30 days to expiration

Expand full comment
Wade's avatar

curious about the "30 days to expiration" rule, since for especially energy future, the front month contract roll from one to the other on monthly basis. Thus, this is might be more to "30 days to first notice day"?

Expand full comment
Quantitativo's avatar

Look at an example. In the CL term structure, these are the first 3 contracts and their expiration dates:

- CL-2025N. Expiration 2025-06-20

- CL-2025Q. Expiration 2025-07-22

- CL-2025U. Expiration 2025-08-20

As CL-2025N has less than 30 days to expiration, the strategy considers CL-2025Q as F1 and CL-2025U as F2. Got it?

Happy to help :)

Expand full comment
Wade's avatar

Thx! this is clear and make sense. And actually this leads to the thought that:

1. since the key is to capture the fast slow response on different terms of the product curve. Might worth checking using F1 and F3 etc to verify the ideas. Or can be based on products, since some products on F3 liquidities already very bad while like energy is pretty good still.

2. Another thought is if available, try to verify the idea on daily data using daily rebalance. Since especially either your article or the paper, the equity curve shows clearly decay after 2010 in recent.

Saw the paper couple days ago and surprise you such fast made article about. Really appreciate this! Thx!

Expand full comment
ben's avatar

unfortunately when accounting for actual volumes necessary to trade these results are completely irreproducible. Most papers in commodities rely on the phantom returns of niche commodities like Milk, OJ, Oat etc to drive the performance and this is another such case.

Expand full comment
Tintin Haddock's avatar

a few practical issues:

1. is the signal shifted by a day? For example, if we are looking for Fri to Fri return, then the trade is initiated on Monday's close and closed at end of following Monday.

2. if we shift by a day, then we can use TAS contracts and get the settle price without slippage.

3. in order to use TAS we probably have to exclude illiquid contracts like orange juice, milk etc.

4. When calculating the returns do use the same contract or a rolled contract? This might make a difference.

Expand full comment
Dyutiman Das's avatar

settlement price is tradeable price if you trade TAS, zero slippage. But that may not be available for less liquid contracts like orange juice (not sure).

Expand full comment