StratoQuant
EN
Get the free code

← All systems

$249 Ver00

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
100 200 500 1,000 2005 2010 2015 2020 2025
Crane_ETF: hypothetical backtest, indexed to 100, logarithmic scale. Not a live account, and not a prediction. See the disclaimer.
Backtest figures
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.

Try any combination in the combining tool

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

Read the code 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.

← All systems