Hello dear 3XGTAA fans,
I have set myself the task of writing a backtest of @Epi 3xGTAA going back at least 20 years, with accurate data and as few sweeping assumptions as possible. This is part 1 of this series. For now, this will just be about sourcing and data generation.
But now to the actual content:
To backtest the strategy to ~2000, we need all the assets that are necessary for the strategy.
These are:
- 3x Nasdaq 100
- 1x Bitcoin (BTC) *(from 2018)*
- 3x Gold
- 3x Silver
- 1x money market
- 7x USD / EUR
- 7x EUR / USD
- 2x Oil
- 5x US Treasuries (TLT)
- 3x Euro Stoxx 50
The basic process is the same for all assets - well, at least that's what I had hoped for, but more on that later. First, the data of the unleveraged asset is obtained and collected in raw format, converted into a standardized format and incorrect data is corrected. Then the required leveraged product is generated from the asset. Finally, the synthetic product is compared with the real ETF to ensure that all assumptions are correct.
Finding all the data as close as possible to the year 2000 is not particularly easy and sometimes requires creative solutions. From a simple API call to scraping websites, everything is involved, but I managed to find data for all assets.
How do you synthesize a leveraged asset?
The first thing you need for leverage is a reliable underlying asset: a net total return index for equities, the price for commodities, so far so clear.
You also need the interest rates of the country in which the product is traded (in our case usually USD). These are important as they represent the costs of the leverage (financing costs).
In addition to the risk-free interest costs, the issuers of a leveraged product must also pay an interest premium (spread), as these are not completely risk-free. This premium varies depending on the asset.
Of course, there are also the classic product costs - TER, should be a familiar term ;)
But now to a more specific factor, the drag. This is mainly caused by rolling losses in contango (when the futures price is higher than the spot price). When futures "roll" monthly, you have to sell cheap and buy expensive, which leads to constant losses. Conversely, rolling profits can arise with backwardation (future < spot). This effect should not be forgotten with gold and with oil it gets even crazier.
Everything is initially calculated in USD and later converted into euros if necessary.
Interest rates: I use US interest rates for the leverage products (initially 13-week T-bills, later even shorter-term rates such as overnight rates, as these are more accurate for leveraged currencies).
The assets in detail
1x money market (synthetic)
First, I synthesized the European money market based on the ECB key interest rate and calculated back to 1999, as money market funds in their current form have only existed since around 2008. I then converted the result into USD in order to have a uniform currency later on.
The result looks like this:
Pretty boring, but that's a good thing. :)
It all started so nicely
For Nasdaq, Gold I got the data directly from yfinance as it is very clean and goes back to 1999 - If only the other assets had been as easy. :(
3x Nasdaq 100
Leverage: 3
TER: 0.75%
Interest spread: 0.6%
3x Gold
Leverage: 3
TER: 0.99%
Interest spread: 0.9%
Drag: 0.2%
As you can see, the result is pretty close to the real product.
1x Bitcoin
Technically, BTC is also in the "that was easy" group, but since it is not leveraged in the 3xGTAA, I am using the pure spot data here (available from 2014, backtest from 2018).
Forex
The currency rates from the ECB serve as the basis for this. There are special features in the interest rate spread.
This is where the problems began: Leveraged currencies work differently to equities. You hold one currency (yield, positive interest rate) and borrow the other (borrow, negative interest rate).
The standard formula had to be extended to reflect this "carry trade". see above.
5x long EUR / short USD:
Leverage: 5
TER: 0.8%
Interest spread: 1.0% (Higher, as USD borrowing was historically more expensive/scarcer -> funding squeeze).
5x long USD / short EUR:
Leverage: 5 (and 7)
TER: 0.8%
Interest spread: 0.0%
(I have on the screen that in the 3xGTAA 7x currencies are used).
US Treasuries (TLT)
Edit: I also used the VUSTX to extend the data to before 2000 so it can be backtested to 2000.
Now the fun really started, unfortunately the TLT data is only available since ~2002 and then only as price and not as net total return.
Obtaining treasury data was particularly challenging as TLT only exists from 2002 onwards. In order to test the strategy up to 2000, a proxy had to be found.
Solution: VUSTX Backfill
I extended the history of TLT (iShares 20+ Year Treasury Bond) with the daily returns of VUSTX (Vanguard Long-Term Treasury Fund) back to 1999.
End difference: only -1.57% over 7 years.
And no, there is no jump in the price, just a rapid rise.
5x TLT:
Leverage: 5
TER: 0.75%
Interest spread: 2.0% (Increased, as the options/ETP is very low).
This is the shakiest product so far - but all in all still completely okay.
Oil (WTI)
Here I have again encountered problems. Not all oil prices are the same. There are spot prices and future prices and then there are the rolling costs. The problem: indices in which the rolling costs are already included are not readily available up to 2000. I have therefore calculated the rolling costs dynamically based on the spread between spot and USO (ETF).
Here are the historical roll costs (positive = loss/drag, negative = gain/yield):
From 2006 to 2008, the contango fell from 12.95% to 2.59%, before the super-contango (61.01%) followed in 2009. Between 2010 and 2013, costs fell from 15.26% to 1.26%, followed by the first backwardation in 2014 (-3.66%). In 2015 and 2016, the values rose again to up to 39.40%, fell to 10.48% in 2017 and briefly turned negative in 2018 (-4.81%). After 1.15% in 2019, corona caused another 47.10% in 2020 (super contango). The backwardation has continued since 2021, with values of -9.94% (2021), a record low of -22.37% (2022) and further negative values up to -13.00% (2025).
As you can see, costs fluctuate extremely. In crises (2009, 2020), rolling losses explode, while in periods of scarcity (2022), profits are even made through backwardation. A static assumption would be fatal here.
3x Oil:
Leverage: 3
TER: 0.99%
Interest spread: 1.5%
Comment: Oil should perhaps only serve as a warning and not be used as a core asset - but I will discuss this in more detail in part 2, right now it's just an idea of mine. (Yes, I am aware that the 3xGTAA only includes 2xWTI)
Euro Stoxx 50
To be honest, this is the nerdiest asset of all - the Euro Stoxx 50 is only available as a price index and not as a net total return. Therefore I first had to calculate the dividends of the index and then synthesize the NET Total Return.
Said and done, followed by the usual process - wrong thinking. You have to explicitly make sure that you leverage the index in EUR and then convert it to USD and not first convert it to USD and then leverage it.
Why: If you were to leverage the index already converted into USD (3x), you would also triple the currency effect (3x equity + 3x FX).
However, we want to simulate the behavior of an unhedged ETF: 3x equity performance + 1x currency effect. Therefore, the index must first be leveraged in local currency (EUR) before the result is converted once into USD.
3x Euro Stoxx 50:
Leverage: 3
TER: 0.8%
Interest spread: 0.7%
What's next?
In part 2 we will then look at the actual backtest and analyze and possibly optimize the performance of the strategy - but that won't happen for a few weeks, as I still have a few things to prepare. Perhaps I'll say a few words about black swans and survivorship bias before then, as this is also an important part of any leverage strategy.
I hope you enjoyed this little insight into the world of synthetic data.
PS: @Krush82 I will also backtest your momentum model and present the results to you. Unfortunately, the data quality of public APIs is not sufficient for this (data is too impure and listed stocks are often no longer available) - so I will probably have to spend money on it 😐. I will try to do all this quickly in one go after the 3xGTAA analysis.

