BACKTEST · MOMENTUM
Dual momentum (absolute + relative)
Dual momentum: SPY vs EFA by 12 month return; hold the winner only if it beats BIL, else hold BIL.
From 2015-01-02 to 2024-12-31, this rule made 19 trades and returned +93.3%. Buying and holding SPY returned +185.3% over the same dates. The largest drop from a past high was 34.1%.
Loading trades...
The rule
Dual momentum: SPY vs EFA by 12 month return; hold the winner only if it beats BIL, else hold BIL. Orders fill at the next close.
Loading the first trade...
Did it beat SPY?
How it did over time
Strategy in orange-red. SPY buy and hold in light.
Loading equity...
The same result in an AI chat
This is how the result looks when an AI agent such as Claude or ChatGPT runs it. It uses the same engine report.
Strategy equity in orange-red, SPY in light. Historical test only.
Every trade
19 trades and 37 fills, straight from the engine report. Each fill shows the day the signal fired, the day it filled, and why. This run used 0 bps fees and 0 bps slippage on each fill, except when a modeled option expires. A basis point (bps) is one hundredth of one percent.
| Signal date | Fill date | Ticker | Side | Price | Reason |
|---|---|---|---|---|---|
| 2016-01-04 | 2016-01-05 | BIL | Buy | $45.69 | allocation |
| 2016-04-01 | 2016-04-04 | BIL | Sell | $45.69 | allocation |
| 2016-04-01 | 2016-04-04 | SPY | Buy | $206.25 | allocation |
| 2016-05-02 | 2016-05-03 | SPY | Sell | $206.16 | allocation |
| 2016-05-02 | 2016-05-03 | BIL | Buy | $45.71 | allocation |
| 2016-07-01 | 2016-07-05 | BIL | Sell | $45.72 | allocation |
| 2016-07-01 | 2016-07-05 | SPY | Buy | $208.41 | allocation |
| 2017-07-03 | 2017-07-05 | SPY | Sell | $242.77 | allocation |
| 2017-07-03 | 2017-07-05 | EFA | Buy | $65.12 | allocation |
| 2017-10-02 | 2017-10-03 | EFA | Sell | $68.65 | allocation |
| 2017-10-02 | 2017-10-03 | SPY | Buy | $252.86 | allocation |
| 2017-12-01 | 2017-12-04 | SPY | Sell | $264.14 | allocation |
| 2017-12-01 | 2017-12-04 | EFA | Buy | $69.58 | allocation |
| 2018-02-01 | 2018-02-02 | EFA | Sell | $72.55 | allocation |
| 2018-02-01 | 2018-02-02 | SPY | Buy | $275.45 | allocation |
| 2018-03-01 | 2018-03-02 | SPY | Sell | $269.08 | allocation |
| 2018-03-01 | 2018-03-02 | EFA | Buy | $69.42 | allocation |
| 2018-05-01 | 2018-05-02 | EFA | Sell | $70.46 | allocation |
| 2018-05-01 | 2018-05-02 | SPY | Buy | $263.20 | allocation |
| 2019-01-02 | 2019-01-03 | SPY | Sell | $244.21 | allocation |
| 2019-01-02 | 2019-01-03 | BIL | Buy | $45.74 | allocation |
| 2019-03-01 | 2019-03-04 | BIL | Sell | $45.72 | allocation |
| 2019-03-01 | 2019-03-04 | SPY | Buy | $279.40 | allocation |
| 2020-04-01 | 2020-04-02 | SPY | Sell | $251.83 | allocation |
| 2020-04-01 | 2020-04-02 | BIL | Buy | $45.79 | allocation |
| 2020-06-01 | 2020-06-02 | BIL | Sell | $45.77 | allocation |
| 2020-06-01 | 2020-06-02 | SPY | Buy | $308.08 | allocation |
| 2022-05-02 | 2022-05-03 | SPY | Sell | $416.38 | allocation |
| 2022-05-02 | 2022-05-03 | BIL | Buy | $45.71 | allocation |
| 2023-05-01 | 2023-05-02 | BIL | Sell | $45.70 | allocation |
| 2023-05-01 | 2023-05-02 | EFA | Buy | $72.77 | allocation |
| 2023-07-03 | 2023-07-05 | EFA | Sell | $71.61 | allocation |
| 2023-07-03 | 2023-07-05 | SPY | Buy | $443.13 | allocation |
| 2023-08-01 | 2023-08-02 | SPY | Sell | $450.13 | allocation |
| 2023-08-01 | 2023-08-02 | EFA | Buy | $72.16 | allocation |
| 2023-12-01 | 2023-12-04 | EFA | Sell | $72.61 | allocation |
| 2023-12-01 | 2023-12-04 | SPY | Buy | $456.69 | allocation |
Want to change this rule?
Ask the chat to try another ticker, other dates, a stop, or different fees. It runs the same engine on real past prices.
Risk warning
Past results do not predict future returns. Not investment advice.