Crane_ETF
Monthly rotation across a fixed basket of ETFs
Every figure on this page is a hypothetical backtest: not a live account, and not a prediction.Read the full disclosure
About the figures on this page
Any results shown are hypothetical backtests, not the performance of a live account. Backtested results have inherent limitations: they are computed with hindsight over a chosen period, they cannot fully model costs, slippage or liquidity, and they do not represent actual trading.
Nothing here is a prediction, a promise, or an indication of future results. Trading involves risk, including total loss of capital. This material is informational only. StratoQuant is not a licensed investment adviser, does not provide personalised investment advice, and does not manage money or access client accounts. See the full disclaimer.
Scores a fixed basket of US-listed funds once a month and holds the strongest few in equal parts, stepping into bond funds when stock funds fall or swing hard. Its record rests mostly on one episode: across the test it matched the benchmark’s growth with about half its drawdown, almost all of that from 2008, and it trailed the benchmark clearly from 2015 to 2024. About ten minutes of work a month, but more than thirty fund changes a year, so costs and fills matter.
- Direction
- Long only
- Universe
- Fixed basket of US-listed ETFs: equity, sectors, bonds, one leveraged
- Holding period
- About 1.6 months on average
- Positions held
- Five, equal weight
- Action needed
- Monthly: rank at the month-end close, orders at the next open; about ten minutes
- Tooling
- Python, end-of-day data
| Test period | 2005-01-03 to 2026-09-30 (21.7y) |
|---|---|
| CAGR | 10.84% |
| Max drawdown | −27.0% |
| Volatility | 15.3% |
| Sharpe | 0.75 |
| Trades per year | 36.2 |
Simulated results only; no live account results appear anywhere in this record. A fixed list of exchange-traded funds chosen in advance, total-return adjusted; funds join the basket as they launch, so the early years ran on fewer funds, and one sector fund’s history before December 2011 is its predecessor’s. Per-share commission with a per-order minimum; proportional slippage on every fill. The ranking is taken at a month-end close and every change executes at the next session’s open, so no result can act on same-bar information. Compounding single account, whole shares, no additions or withdrawals; the small cash remainder earns nothing. CAGR and volatility from the daily series; maximum drawdown measured on daily marks (−27.0%); the monthly curve below shows a shallower −23.5%. Sharpe is on a zero-rate basis. Parameters are fixed as originally researched and were not tuned to this test, but the system was selected for publication from a larger set of researched systems. Benchmark (a broad US large-capitalisation index fund held throughout) on the same data: CAGR 10.87%, max drawdown −55.2%, volatility 18.9%.
How it moved with the other systems
Correlation of monthly changes, and how often both rose or fell in the same month, over the months both tests share.
| System | Correlation | Same direction | Period |
|---|---|---|---|
| Harrier_SPY | 0.69 | 77% | Jan 2005 to Sep 2026 |
| Owl_SPY | 0.26 | 64% | Jan 2005 to Sep 2026 |
| Stork_NDX | 0.47 | 72% | Jan 2005 to Sep 2026 |
Hypothetical backtests. These are facts about the past, not a suggestion to run any systems together.
What you get
- The rules written out in plain language
- The Python code that runs them
- Every assumption of the simulated backtest, stated
- One payment of $249, no subscription
- Corrections to your version at no charge, and a refund if the code does not run as described and we cannot fix it within 14 days
- A personal, non-commercial licence
What you need
- Python 3.10 or later, with pandas and numpy
- Daily end-of-day prices you are licensed to use; we do not supply market data
The data this system needs
Dividend-adjusted daily prices for each fund in the basket.
Code release in preparation
Crane_ETF is being prepared as a code release: its rules written out in plain language and the Python code that runs them, for you to run on market data you are licensed to use. It is not available yet. The planned price is $249, paid once.
Thank you. We will email you once, when this system is released.
That did not go through. Please check your email address and try again.
We use your email only to tell you about this release. See the privacy notice.